1 
  2 /*
  3  * $Id: src_rita.js.html,v 1.6 2012/07/19 10:39:50 dev Exp $ 
  4  */
  5 (function(window, undefined) {
  6         
  7     /**
  8      * Simple type-checking functions
  9      * @private
 10      */ 
 11     Type = {
 12         
 13         N : 'number', S : 'string', O : 'object', A :'array', B : 'boolean', R : 'regexp', F : 'function',
 14         
 15         /**
 16          * from: http://javascriptweblog.wordpress.com/2011/08/08/fixing-the-javascript-typeof-operator/
 17          */
 18         get : function(obj) {
 19             
 20             return ({}).toString.call(obj).match(/\s([a-zA-Z]+)/)[1].toLowerCase();
 21         },
 22         
 23         /**
 24          * Returns true if the object if of type 'type, otherwise false
 25          */
 26         is : function(obj,type) {
 27             
 28             return Type.get(obj) === type;
 29         },
 30         
 31         /**
 32          * Throws TypeError if not the correct type, else returns true
 33          */
 34         ok : function(obj,type) {
 35             
 36             if (Type.get(obj)!=type) 
 37                 throw TypeError('Expected '+(type ? type.toUpperCase() : type+E)
 38                     +", received "+(obj ? Type.get(obj).toUpperCase() : obj+E));
 39             return true;
 40         }
 41         
 42     } // end Type
 43     
 44     var is = Type.is, ok = Type.ok; // aliases
 45 
 46     // ////////////////////////////////////////////////////////////
 47     // RiMarkov
 48     // ////////////////////////////////////////////////////////////
 49     
 50     /**
 51      * @name RiMarkov
 52      * @class Performs analysis and text generation via Markov chains (aka N-Grams) 
 53      * with options to process single characters, words, sentences, and 
 54      * arbitrary regular expressions. 
 55      */
 56     /*
 57      * <p>
 58      * 
 59      * Provides a variety of methods specifically 
 60      * designed for text-generation.
 61      *  
 62      * @example usage:<pre>
 63      *   RiMarkov rm = new RiMarkov(this, 3);
 64      *   rm.loadFile("war_peace.txt"); // in data dir.
 65      *   String[] sents = rm.generateSentences(10);
 66      *   for (int i = 0; i < sents.length; i++) {
 67      *     System.out.println(sents[i]);
 68      *   }</pre>
 69      
 70      * Note: use RiMarkov.setTokenizerRegex() to control how inputs are tokenized (or split-up). 
 71      * The default is to use the Penn word-tokenizing conventions (without splitting contractions). 
 72      * You may wish to simply use whitespace (or some other regular expression), which 
 73      * can be accomplished as follows:<pre>
 74      *   RiMarkov rm = new RiMarkov(this, 3);
 75      *   rm.setTokenizerRegex("\\s");</pre>
 76      *   
 77      *   
 78      * This creates a new model, with n=3, that tokenizes its
 79      * input on the whitespace characters: [ \t\n\x0B\f\r].
 80      * 
 81      * <p> 
 82      * 
 83      * Note: use RiMarkov.setAllowDuplicates(false) method to ensure that sentences that exist 
 84      * in the input test are not output by generate().  This method should be used with care, 
 85      * as certain sets of input texts (with allowDuplicates=false) may result in decreased performance
 86      * and/or excessive memory use.
 87      */
 88     var RiMarkov = makeClass();
 89             
 90     RiMarkov.prototype = {
 91 
 92         /**
 93          * @function
 94          * @name RiMarkov 
 95          * 
 96          * Construct a Markov chain (or n-gram) model and set its n-Factor
 97          * 
 98          * @param {number} nFactor for the model
 99          * @param {boolean} caseSensitive whether the model should be case-sensitive (optional, default=false)
100          * @param {boolean} useSmoothing whether the model should be case-sensitive (optional, default=false)
101          */
102         initialize : function(nFactor, caseSensitive, useSmoothing) {
103                        
104             ok(nFactor,N);
105            
106             this._n = nFactor;
107             this.smoothing = useSmoothing || false;
108             this.ignoresCase = !caseSensitive || true;
109             TextNode.ignoreCase = !this.ignoresCase;
110             this.root = new TextNode(null, 'ROOT');
111         },
112 
113         /**
114          * Returns either the raw (unigram) probability for a single token in the model (0 if it does not exist)
115          * OR (for an array) the probability of obtaining a sequence of k tokens where k <= nFactor,
116          * e.g., if nFactor = 3, then valid lengths for the data arrau are 1, 2 & 3.
117   
118          * @param {string | array} data the string (or sequence of strings) to search for
119          * 
120          * @returns {number} from 0-1
121          */
122         getProbability : function(data) {
123             
124             if (!this.root) err("Model not initialized: null root!");
125             
126             var tn = Type.is(data,S) ? this.root.lookup(data) : this._findNode(data);
127 
128             return (tn) ? tn.probability() : 0;
129             
130         },
131         
132         /** 
133          * Returns the full set of possible next tokens, as an associative array, 
134          * (mapping string -> number (probability)) given an array of tokens 
135          * representing the path down the tree (with length less than n).
136          * <p>  
137          * If the input array length is not less than n, or the path cannot be 
138          * found, or the end-node has no children, null is returned.
139          * <p>
140          * @param {string | array} a single token or array of tokens (strings)
141          *
142          * @returns {object} associative array mapping tokens to probabilities
143          */
144         getProbabilities : function(path) {
145             
146             if (Type.is(path,S)) path = [path];
147             
148             if (path.length < 1 || path.length >= this._n)      
149               return {};
150             
151             var probs = {}, tn = this._findNode(path);
152             
153             if (!tn) return {};
154 
155             var nexts = tn.childNodes();
156             for ( var i = 0; i < nexts.length; i++) {
157                 var node = nexts[i];
158                 if (node)  {
159                     probs[node.token] = node.probability();
160                 }
161             }
162             
163             return probs;
164             // DEAD: CHANGED IN RiTa 6/16/12 //////////////////////////////////
165         },
166         
167         /**
168          * Continues generating tokens until a token matches 'regex', assuming
169          * the length of the output array is between min and maxLength (inclusive).
170          * 
171          * @param {string} or {object} regex The regex string or object to match against
172          * @param {number} minLength the minimum number of tokens to generate
173          * @param {number} maxLength the maximum number of tokens to generate
174          * 
175          * @returns {array} strings
176          */ 
177         generateUntil : function(regex, minLength, maxLength){
178            
179             minLength = minLength || 1, maxLength = maxLength || 99;
180             
181             var mn, tokens, tries=0, maxTries=500;
182             
183             OUT: while (++tries < maxTries) {
184             
185                 // generate the min number of tokens
186                 tokens = this.generateTokens(minLength);
187 
188                 // keep adding one and checking until we pass the max
189                 while (tokens.length < maxLength) {
190                     
191                     mn = this._nextNode(tokens);
192                     
193                     if (!mn || !mn.token)   
194                       continue OUT;// fail, restart
195                     
196                     tokens.push(mn.token);
197                     
198                     // check against our regex
199                     if (mn.token.search(regex) >-1 )
200                         return tokens;
201                 }
202             }
203             
204             // uh-oh, we failed
205             if (tries >= maxTries) 
206                 err("\n[WARN] RiMarkov failed to complete after "+tries+" attempts\n");
207 
208             return tokens;
209            
210         },
211             
212         /**
213          * Generates a string of <pre>length</pre> tokens from the model
214          * @param {number} the target number of tokens to generate
215          * @returns {array} strings
216          */
217         generateTokens : function(targetNumber){
218             
219             var tries = 0, maxTries = 500, tokens = [];
220             
221             OUT: while (++tries < maxTries) {
222                 
223               var mn = this.root.selectChild(null, true);
224               if (!mn || !mn.token) continue OUT;
225               tokens.push(mn);
226               
227               while (tokens.length < targetNumber) {
228                   
229                 mn = this._nextNode(tokens);
230                 if (!mn || !mn.token)  { // hit the end
231                     
232                   tokens = []; // start over
233                   continue OUT;
234                 }   
235                 
236                 tokens.push(mn);        
237               }
238               
239               break;
240             }
241             
242             // uh-oh, looks like we failed...
243             if (tokens.length < targetNumber) {
244                  err("\n[WARN] RiMarkov failed to complete after "+tries
245                    +" tries, with only "+tokens.length+" successful generations...\n");
246             }
247    
248             var res = [];
249             for ( var i = 0; i < tokens.length; i++) {
250                 res[i] = tokens[i].token;
251             }
252             
253             return res;// this._tokensToString(tokens, true);
254 
255         },
256 
257         /**
258          * Sets/gets whether the model ignores case in its comparisons
259          * @param {boolean} value sets the value of the flag (optional)
260          * @returns {object | number}
261          */
262         ignoreCase : function(value){
263             
264             if (arguments.length) {
265                 
266                 this.ignoresCase = value;
267                 return this;
268             }
269             return this.ignoresCase;  
270         },
271         
272                 
273         /**
274          * Sets/gets the value of 'useSmoothing' to detemine 
275          * whether (add-1) smoothing is enabled for the model.
276          * Note: should be called before any data loading is done.
277          * @returns {object | boolean} 
278          */
279         useSmoothing : function(value) {
280             
281             if (arguments.length) {
282                 
283                 this.smoothing = value;
284                 return this;
285             }
286             return this.smoothing;
287         },
288         
289         
290         /**
291          *  TODO: does this make sense as one method?
292          * 
293          * If only one array parameter is provided, this function returns all possible
294          * next words (or tokens), ordered by probability, for the given
295          * array. <p>Note: seed arrays of any size (>0) may 
296          * be input, but only the last n-1 elements will be considered.   
297          *
298          * @example var result = getCompletions([ "the","red"]);
299          *
300          * If two arrays are provided, it returns an unordered list of possible words <i>w</i> 
301          * that complete an n-gram consisting of: pre[0]...pre[k], <i>w</i>, post[k+1]...post[n].
302          * As an example, the following call:
303          * 
304          * @example var result = getCompletions([ "the" ], [ "red", "ball" ]);
305          * 
306          * will return all the single words that occur between 'the' and 'red ball'
307          * in the current model (assuming n > 3), e.g., [ 'round', 'big', 'bouncy']).
308          * <p> 
309          * Note: For this operation to be valid, (pre.length + post.length)
310          * must be strictly less than the model's nFactor, otherwise an 
311          * exception will be thrown. 
312          * 
313          * @param {array} pre
314          * @param {array} post (optional)
315          * 
316          * @returns {array}  an unordered list of possible next tokens
317          * 
318          * @private  TODO: implement me!
319          */
320         getCompletions : function(pre, post) {
321             
322             err('not yet implemented in RiTaJS');
323             
324            /* if (!post) {
325                 if (pre == null || pre.length >= nFactor)
326                     throw new RiTaException("Invalid pre array: "+RiTa.asList(pre));
327                   
328                   int postLen = post == null ? 0 : post.length;    
329                   if (pre.length + postLen > nFactor) {
330                     throw new RiTaException("Sum of pre.length" +
331                         " && post.length must be < N, was "+(pre.length+postLen));        
332                   }
333                   
334                   TextNode tn = findNode(pre);
335                   if (tn == null) return null;
336                   
337                   List result = new ArrayList();
338                   Collection nexts = tn.getChildNodes();
339                   for (Iterator it = nexts.iterator(); it.hasNext();)
340                   {
341                     TextNode node = (TextNode) it.next();
342                     String[] test = appendToken(pre, node.getToken());
343                     if (test == null) continue;
344                     for (int i = 0; i < postLen; i++)
345                       test = appendToken(test, post[i]); 
346                     if (findNode(test) != null)
347                       result.add(node.getToken());      
348                   }        
349                   return strArr(result);
350             }
351             else {
352                 var seed = pre;
353                 if (seed == null || seed.length == 0) {
354                     System.out.println("[WARN] Null (or zero-length) seed passed to getCompletions()");
355                     return null;
356                 }
357                 int firstLookupIdx = Math.max(0, seed.length-(nFactor-1));         
358                 TextNode node = rootLookup(seed[firstLookupIdx++]);    
359                 for (int i = firstLookupIdx; i < seed.length; i++) {
360                     if (node == null) return null;
361                     node = node.lookup(seed[i]);
362                 }
363                 if (node == null) return null;
364     
365                 Collection c = node.getChildMap().values();
366                 if (c == null || c.size()<1) return null;
367                 TextNode[] nodes = new TextNode[c.size()];
368                 nodes = (TextNode[])c.toArray(nodes);
369                 Arrays.sort(nodes);
370                 String[] result = new String[nodes.length];
371                 for (int i = 0; i < result.length; i++)
372                     result[i] = nodes[i].getToken();
373                 return result;
374             }*/
375             
376         },
377 
378         /**
379          * Returns the current n-value for the model
380          * 
381          * @returns {number}
382          */
383         getN : function() {
384             
385             return this._n;
386             
387         },
388         
389         /**
390          * Returns the number of tokens currently in the model
391          * @returns {number}
392          */
393         numTokens : function() {
394             
395             return this.root.count;
396         },
397         
398         /**
399          * Prints a formatted version of the model to the console 
400          */
401         print : function() {
402             
403             console && console.log(this.root.asTree(false));
404         },
405         
406         /**
407          * Loads a text string into the model after tokenizing it.
408          * 
409          * @param {string} text the string
410          * @param {number} multiplier Weighting for text (optional, default=1) <br>
411          * @param {string | regex} a regular expression to be used for tokenizing
412          *   (optional, if not supplied, uses RiTa.tokenize())
413          * @see RiTa.tokenize
414          * @returns {object} this RiMarkov
415          */
416         loadText : function(text, multiplier, regex) {
417           
418           return this.loadTokens(RiTa.tokenize(text,regex), multiplier);
419         },
420         
421         /**
422          * Loads an array of tokens (or words) into the model; each 
423          * element in the array must be a single token for proper 
424          * construction of the model. 
425          * 
426          * @param {array} tokens the strings with which to load the model 
427          * @param {number} multiplier Weighting for tokens in the array (optional, default=1) <br>
428          * @returns {object} this RiMarkov
429          */
430         loadTokens : function(tokens, multiplier) {
431           
432           multiplier = multiplier || 1;
433 
434           this.root.count += tokens.length; // here?
435           
436           for (var toAdd, k = 0; k < tokens.length; k++)
437           {
438             toAdd = [];
439             
440             for (var j = 0; j < this._n; j++)
441             {
442               if ((k+j) < tokens.length)   
443                 toAdd[j] = (!isNull(tokens[k+j])) ? tokens[k+j] : null;
444               else 
445                 toAdd[j] = null;
446             }      
447             
448             // hack to deal with multiplier...
449             for (var j = 0; j < multiplier; j++) {
450               var node = this.root;          
451               for (var i = 0; i < toAdd.length; i++) {
452                 if (node.token)        
453                   node = node.addChild(toAdd[i], this.smoothing ? 2 : 1);
454               }
455             }
456           }
457           
458           return this;
459         },
460         
461 
462         _findNode : function(path) {
463             
464           //log("RiMarkov.findNode("+path.toString()+")");
465           
466           if (!path || !Type.is(path,A) || !path.length)
467               return null;
468 
469           var nFactor = this._n;
470           var numNodes = Math.min(path.length, nFactor-1);
471           var firstLookupIdx = Math.max(0, path.length-(nFactor-1));         
472           var node = this.root.lookup(path[firstLookupIdx++]);    
473           
474           if (!node) return null;
475           
476           var idx = 0;  // found at least one good node
477           var nodes = [];    
478           nodes[idx++] = node; 
479           for (var i = firstLookupIdx; i < path.length; i++) {       
480             node = node.lookup(path[i]);
481             if (!node) return null;
482             nodes[idx++] = node;
483           }
484           
485           return nodes ? nodes[nodes.length-1] : null;
486         },
487         
488         _nextNode : function(previousTokens)
489         { 
490           // Follow the seed path down the tree
491           var firstLookupIdx = Math.max(0, previousTokens.length-(this._n-1)), 
492               node = this.root.lookup(previousTokens[firstLookupIdx++]);
493           
494           for (var i = firstLookupIdx; i < previousTokens.length; i++) {
495               (node) && (node = node.lookup(previousTokens[i]));
496           }
497           
498           // Now select the next node
499           return node ? node.selectChild(null, true) : null;
500         },
501         
502         _tokensToString : function(tokens, addSpaces) { // not used at moment
503           var result = E; 
504           for ( var i = 0; i < tokens.length; i++) {
505             if (tokens[i].token) {
506                 result += tokens[i].token;
507                 if (i < tokens.length-1 && addSpaces)
508                     result += SP;      
509             }
510           }
511           return result;
512         }
513 
514     }
515     
516     ///////////////////////////////////////////////////////////////////////////
517     // RiTaEvent class 
518     ///////////////////////////////////////////////////////////////////////////
519     
520     /**
521      * @name RiTaEvent
522      * 
523      * @class Simple wrapper for event-based callbacks 
524      */
525     /*
526      * @example A typical usage might be to switch on the type 
527      * of a RiTaEvent within a callback:
528      <pre>
529      function onRiTaEvent(e)
530         {
531           if (e.getSource() == RiTa.BEHAVIOR_COMPLETED)
532             // ...
533           else 
534             // ...
535         }
536         <pre>
537      */   
538     RiTaEvent = makeClass();
539     
540     RiTaEvent._callbacksDisabled = false;
541     
542     RiTaEvent.prototype = {
543         
544         /**
545          * Contructs a new RiTaEvent object with a source and type
546          */
547         initialize : function(sourceRiText, eventType) {
548             
549             ok(sourceRiText,O);
550             
551             var fn = RiTaEvent.prototype.initialize;
552             if (!fn.ID) fn.ID = 0;
553             this._id = ++(fn.ID);
554             
555             this._source = sourceRiText;
556             this._type = eventType || RiText.UNKNOWN;
557             //this._data = data;
558         },
559         
560         
561         /** @private  */
562         toString : function() {
563             
564             return "RiTaEvent[#"+this._id+" type="+this._type+
565                 " src="+this._source.toString()+"]";//+", data="+this._data+"]";
566             
567         },
568         
569         /**
570          * Gets the source for this event
571          * @returns {object} the source
572          */
573         getSource : function() {
574             
575             return this._source;
576             
577         },
578         
579         /**
580          * Gets the type for this event
581          * @returns {string} the type
582          */
583         getType : function() {
584             
585             return this._type;
586             
587         },
588         
589         /**
590          * Fires an event and directs it to the appropriate callback implementation
591          * @param callback
592          */
593         _fire : function(callback) {
594 
595             callback = callback || window.onRiTaEvent || RiText.graphics().onRiTaEvent; // last is for P5
596             
597             if (typeof callback === 'function') {
598                 
599                try {
600                    callback.apply(this,[this]);
601                }
602                 catch(err) {
603                     
604                     RiTaEvent._callbacksDisabled = true;
605                     console.warn("RiTaEvent: error calling 'onRiTaEvent' "+err);
606                     throw err;
607                 }                
608             }
609             else if (!RiTaEvent._callbacksDisabled) {
610                 
611                 console.warn("RiTaEvent: no 'onRiTaEvent' callback found");
612                 RiTaEvent._callbacksDisabled = true;
613             }
614             
615         },
616     }
617     
618     
619     // ////////////////////////////////////////////////////////////
620     // RiLexicon
621     // ////////////////////////////////////////////////////////////
622     
623     /**
624      * @name RiLexicon
625      * 
626      * @class Represents the core 'dictionary' (or lexicon) for the RiTa tools. 
627      * It contains ~35,000 words augmented with phonemic and syllabic data, as well as a list of valid parts-of-speech for each. 
628      * The lexicon can be extended and/or customized for additional words, usages, or pronunciations.
629      * 
630      * <p> Additionally the lexicon is equipped with implementations of a variety of matching algorithms 
631      * (min-edit-distance, soundex, metaphone, anagrams, alliteration, rhymes, looks-like, etc.) 
632      * based on combinations of letters, syllables and phonemes.
633      * <p>
634      * Note: For performance, the data for RiLexicon is shared in a single location for ALL created instances (static)
635      * <p> 
636      * Note: If you wish to modify or customize the lexicon (e.g., add words, or change pronunciations) 
637      * you can do so directly, by editing the 'rita_dict.js' file, or programatically, via addWord() and removeWord()
638      *
639      * @example
640         lex = new RiLexicon(this);
641         similars = lex.similarBySound("cat");
642         rhymes = lex.getSimpleRhymes("cat");
643         // etc.
644      */
645     RiLexicon = makeClass();
646 
647     // ////////////////////////////////////////////////////////////
648     // Static functions
649     // ////////////////////////////////////////////////////////////
650     
651     /**
652      * Returns the singleton instance of RiLexicon
653      * Do we need this? 
654      */
655     RiLexicon._getInstance = function() {
656 
657         var lexicon; 
658         
659         try {
660             lexicon = new RiLexicon();
661         }
662         catch(e) {
663             err("No RiTa lexicon found! Have you included 'rita_dict.js'?");
664         }
665         
666         RiLexicon._getInstance = function() {
667             return lexicon;
668         };
669         
670         return lexicon;
671     }
672 
673     // ////////////////////////////////////////////////////////////
674     // Static variables
675     // ////////////////////////////////////////////////////////////
676    
677     // TODO: these need comments
678     
679     RiLexicon.FEATURE_DELIM = ':';
680     
681     RiLexicon.STRESSED = '1'; 
682     
683     RiLexicon.UNSTRESSED = '0';
684     
685     RiLexicon.PHONEME_BOUNDARY = '-'; 
686     
687     RiLexicon.WORD_BOUNDARY = " "; 
688     
689     RiLexicon.SYLLABLE_BOUNDARY = "/"; 
690     
691     RiLexicon.SENTENCE_BOUNDARY = "|";
692     
693     RiLexicon.VOWELS = "aeiou";
694     
695     /** @private */
696     RiLexicon.data = undefined; // shared static var
697     
698     // ////////////////////////////////////////////////////////////
699     // Member functions
700     // ////////////////////////////////////////////////////////////
701     
702     RiLexicon.prototype = {
703         
704         /**
705          * Constructs an instance of the RiLexicon class.
706          * <p> 
707          * Note: For performance, the data for all RiLexicon instances
708          * is shared (there is only 1 copy)
709          */
710         initialize : function() { 
711             
712            if (!RiLexicon.data) {
713             
714                //log(typeof RiTa_DICTIONARY);
715                if (typeof RiTa_DICTIONARY != 'undefined') 
716                {
717                  //if (!RiTa.SILENT && console) console.log('[RiTa] Loaded lexicon data...'); 
718                  
719                  RiLexicon.data = RiTa_DICTIONARY;
720                } 
721                else {
722            
723                    err("Dictionary not found! Make sure to add it to your .html:"
724                       + ", e.g.,\n\n    <script src=\"path/to/rita_dict.js\"></script>");
725                }
726            }
727                
728         },
729         
730         /** Clears the whole lexicon */
731         clear : function() {
732             
733            RiLexicon.data = undefined;
734         },
735      
736         /**
737          * Adds a word to the current lexicon (not permanent)
738          * 
739          * @example lexicon.addWord('abandon','ax-b ae1-n-d ax-n','vb nn vbp');
740          * 
741          * @param {string} word
742          * @param {string} pronunciationData
743          * @param {string} posData
744          * 
745          * @returns {object} this RiLexicon  
746          */
747         addWord : function(word, pronunciationData, posData) {
748             
749             RiLexicon.data[word.toLowerCase()] = [pronunciationData,posData];
750             return this;
751             
752         },
753         
754         /**
755          * Removes a word from the current lexicon (not permanent)
756          * 
757          * @example removeWord('abandon');
758          * 
759          * @param {string} word
760          * @returns {object} this RiLexicon  
761          */
762         removeWord : function(word) {
763             
764             delete RiLexicon.data[word];
765             return this;
766             
767         },
768         
769         
770         /**
771          * Compares the characters of the input string  (using a version of the min-edit distance algorithm)
772          * to each word in the lexicon, returning the set of closest matches.        
773          * 
774          * @param {string} word
775          * @param {number} minAllowedDist minimum edit distance for matches (optional, default=1)
776          * @param {boolean} preserveLength whether to return only words that match the length of the input word (optional, default=true)
777          * 
778          * @returns {array} matching words 
779          */
780         similarByLetter : function(input, minAllowedDist, preserveLength) { 
781        
782                     var minVal = Number.MAX_VALUE, minLen = 2,  result = []; 
783                     
784                     if (!(input && input.length)) return [];
785                     
786                     input = input.toLowerCase();
787                     minAllowedDist = minAllowedDist || 1;
788                     preserveLength = preserveLength || false;
789                     
790                     for (var entry in RiLexicon.data) {
791                     
792                       if (preserveLength && entry.length != input.length || entry.length < minLen) 
793                           continue; 
794                             
795                       entry = entry.toLowerCase();
796                       
797                       if (entry==input || entry==(input+"s")|| entry==(input+"es")) 
798                           continue;
799                       
800                       var med = MinEditDist.computeRaw(entry, input);     
801                       
802                       if (med == 0) continue; // same word
803 
804                       // we found something even closer
805                       if (med >= minAllowedDist && med < minVal) {
806                           
807                           minVal = med;
808                           result = [entry];
809                       }  
810                       
811                       // we have another best to add
812                       else if (med == minVal) { 
813                           result.push(entry);
814                       }
815                     }        
816                     
817                     return result;
818             
819         },
820         
821         /**
822          * Compares the phonemes of the input string 
823          * (using a version of the min-edit distance algorithm)
824          * to each word in the lexicon, returning the set of closest matches.        
825          * 
826          * @param {string} input
827          * @param {number}  minEditDist (optional) minimum edit distance for matches 
828          * @returns {array} matching words 
829          */
830         similarBySound: function(input, minEditDist) { // take options arg instead?
831                 
832                 minEditDist = minEditDist || 1;
833             
834                 var minVal = Number.MAX_VALUE, entry, result = [], minLen = 2, phonesArr,
835                     phones = RiTa.getPhonemes(input), med, targetPhonesArr = phones.split("-");
836 
837                 targetPhonesArr = phones ? phones.split("-") : [];
838                 
839                 if (!targetPhonesArr[0] || !(input && input.length)) return [];
840        
841                 for (entry in RiLexicon.data) {
842             
843                       if (entry.length < minLen) continue;
844                       
845                       entry = entry.toLowerCase();
846                       
847                       if (entry==input || entry==(input+"s")|| entry==(input+"es")) 
848                           continue; 
849                     
850                       
851                       phones = this._getRawPhones(entry); 
852                       
853                       if (!phones.length) { 
854                           
855                           phones = this.syllabify(LetterToSound().getPhones(entry));
856                           if (!phones) return [];
857                       }
858                       
859                       phonesArr = phones.replace(/1/g, "").replace(/ /g, "-").split('-');
860                       
861                       med = MinEditDist.computeRaw(phonesArr, targetPhonesArr);  
862 
863                       if (med == 0) continue; // same phones 
864     
865                       // we found something even closer
866                       if (med >= minEditDist && med < minVal) {
867     
868                           minVal = med;
869                           result = [entry];
870                       }  
871                       // we have another best to add
872                       else if (med == minVal) {
873                           result.push(entry);
874                       }
875                 }
876 
877                 return result;
878         },
879         
880         /**
881          * Returns all valid substrings of the input word in the lexicon 
882          *
883          * @param {string} word
884          * @param {number} minLength (optional, default=4) minimum length of return word 
885          * @returns {array} matching words 
886          */
887         substrings: function(word, minLength) { 
888             
889             minLength = minLength || (minLength === 0) || 4;
890             
891             var entry, result =[];
892             for  (entry in RiLexicon.data){
893                 if(entry == word || entry.length < minLength ) continue;        
894                 if (word.indexOf(entry) >=0) result.push(entry);
895             }
896             return result;
897             
898         },
899         
900         /**
901          * Returns all valid superstrings of the input word in the lexicon 
902          *
903          * @param {string} word
904          * @returns {array} matching words 
905          */
906         superstrings: function(word) { 
907             
908             var entry, result =[];
909             for  (entry in RiLexicon.data){
910                 if(entry == word) continue;
911                 if (entry.indexOf(word) >= 0) result.push(entry);
912             }
913             return result;
914         
915         },
916         
917         /**
918          * First calls similarBySound(), then filters the result set by the algorithm 
919          * used in similarByLetter(); 
920          * 
921          * (useful when similarBySound() returns too large a result set)
922          * 
923          * @param {string} word
924          * @param {number} minEditDist (optional) minimum edit distance for both matches 
925          * @returns {array} matching words 
926          */
927         similarBySoundAndLetter: function(word, minEditDist) { // take options arg instead?
928             
929             var simSound, simLetter, result = [];
930             
931             if (isNull(minEditDist)) {
932                 
933                 simSound = this.similarBySound(word);
934                 simLetter = this.similarByLetter(word);
935             } 
936             else {
937                 
938                 simSound = this.similarBySound(word,minEditDist);
939                 simLetter = this.similarByLetter(word,minEditDist);
940             }
941 
942             if (isNull(simSound) || isNull(simLetter)) return result;
943             
944             for (var i=0; i<simSound.length; i++) {
945                 
946                 for (var j=0; j<simLetter.length; j++) {
947                     
948                     if (simSound[i] == simLetter[j]) 
949                         result.push(simLetter[j]);
950                 }
951             }
952             
953             return result;
954         },
955         
956         /**
957          * Returns the array of all words in the lexicon or those matching a specific regex. If specified,
958          * the order of the result array is randomized before return.
959          *  
960          * @param {regex} regex (string or object) pattern to match (optional)
961          * @param {boolean} randomize randomizes the order (default=false)
962          * @returns {array} words in the RiLexicon  
963          */
964         getWords : function() {
965             
966             var a = arguments, randomize = false, regex = undefined,
967                 wordArr = [], words =  Object.keys(RiLexicon.data); // TODO: replace Object.keys()
968             
969             switch (a.length) {
970                 
971                 case 2:
972                     
973                     if (Type.is(a[0],B)) {
974                         randomize = a[0];
975                         regex = (Type.is(a[1],R)) ? a[1] : new RegExp(a[1]);
976                     } 
977                     else {
978                         randomize = a[1];
979                         regex = (Type.is(a[0],R)) ? a[0] : new RegExp(a[0]);
980                     };
981 
982                     break;
983                     
984                 case 1:
985                                         
986                     if (Type.is(a[0],B)) {
987                         return a[0] ? shuffle(words) : Object.keys(words);
988                     }
989                     
990                     regex = (Type.is(a[0],R)) ? a[0] : new RegExp(a[0]);
991                     
992                     break;
993                     
994                 case 0:
995                     
996                     return shuffle(words);
997             }
998             
999 
1000             for (var i = 0; i < words.length; i++) {
1001                 
1002                 if (words[i].match(regex)) {
1003                     
1004                     wordArr.push(words[i]);
1005                 }
1006             }
1007             
1008             return randomize ? shuffle(wordArr) : wordArr;
1009             
1010         },
1011         
1012         /**
1013          * Returns true if c is a vowel
1014          * @param {char} c
1015          * @returns {boolean}
1016          */
1017         _isVowel : function(c) {
1018 
1019             return (strOk(c) && RiLexicon.VOWELS.indexOf(c) > -1);
1020              
1021         },
1022 
1023         /**
1024          * Returns true if c is a consonant
1025          * @param {char} p
1026          * @returns {boolean}
1027          */
1028         _isConsonant : function(p) {
1029 
1030             return (typeof p == S && p.length==1 && 
1031                 RiLexicon.VOWELS.indexOf(p) < 0 && /^[a-z\u00C0-\u00ff]+$/.test(p));
1032             
1033         },
1034 
1035         /**
1036          * Returns true if the word exists in the lexicon
1037          * @param {string} word
1038          * @returns {boolean} 
1039          */
1040         containsWord : function(word) {
1041 
1042             return (strOk(word) && !isNull(RiLexicon.data[word.toLowerCase()]));
1043             
1044         },
1045         
1046         /**
1047          * Returns true if the two words rhyme, that is, if their final stressed phoneme 
1048          * and all following phonemes are identical, else false.
1049          * <p>
1050          * Note: returns false if word1.equals(word2) or if either (or both) are null;
1051          * <p>
1052          * Note: at present doesn't use letter-to-sound engine if either word is not found in the lexicon, 
1053          * but instead just returns false. 
1054          * 
1055          * @param {string} word1
1056          * @param {string} word2
1057          * 
1058          * @returns {boolean} true if the two words rhyme, else false.
1059          */
1060         isRhyme : function(word1, word2) {
1061 
1062             if ( !strOk(word1) || !strOk(word2) || equalsIgnoreCase(word1, word2))
1063                 return false;
1064             
1065             var p1 = this._lastStressedPhoneToEnd(word1), 
1066                 p2 = this._lastStressedPhoneToEnd(word2);
1067             
1068             return (strOk(p1) && strOk(p2) && p1 === p2);
1069             
1070         },
1071 
1072         /**
1073          * 
1074          * Two words rhyme if their final stressed vowel and all following phonemes are identical.
1075          * @param {string} word
1076          * @returns {array} strings of the rhymes for a given word, or empty array if none are found
1077          */
1078         getRhymes : function(word) {
1079 
1080             //this._buildWordlist_();
1081 
1082             if (this.containsWord(word)) {
1083 
1084                 var p = this._lastStressedPhoneToEnd(word);
1085                 var entry, entryPhones, results = [];
1086 
1087                 for (entry in RiLexicon.data) {
1088                     if (entry === word)
1089                         continue;
1090                     entryPhones = this._getRawPhones(entry);
1091 
1092                     if (strOk(entryPhones) && endsWith(entryPhones, p)) {
1093                         results.push(entry);
1094                     }
1095                 }
1096                 return (results.length > 0) ? results : []; // return null?
1097             }
1098             
1099             return []; // return null?
1100             
1101         },
1102 
1103         /**
1104          * Finds alliterations by comparing the phonemes of the input string to those of each word in the lexicon
1105          * 
1106          * @param {string} word input
1107          * @returns {array} strings of alliterations
1108          */
1109         getAlliterations : function(word) {
1110 
1111             if (this.containsWord(word)) {
1112 
1113                 var c2, entry, results = [];
1114                 var c1 = this._firstConsonant(this._firstStressedSyllable(word));
1115 
1116                 for (entry in RiLexicon.data) {
1117                     
1118                     c2 = this._firstConsonant(this._firstStressedSyllable(entry));
1119                     
1120                     if (c2 && c1 === c2) {
1121                         results.push(entry);
1122                     }
1123                 }
1124                 return (results.length > 0) ? results : []; // return null?
1125             }
1126             return []; // return null?
1127             
1128         },
1129 
1130         /**
1131          * Returns true if the first stressed consonant of the two words match, else false.
1132          * 
1133          * @param {string} word1
1134          * @param {string} word2
1135          * @returns {boolean} true if word1.equals(word2) and false if either (or both) are null;
1136          */
1137         isAlliteration : function(word1, word2) {
1138 
1139             if (!strOk(word1) || !strOk(word2)) return false;
1140 
1141             if (equalsIgnoreCase(word1, word2)) return true;
1142 
1143             var c1 = this._firstConsonant(this._firstStressedSyllable(word1)),
1144                 c2 = this._firstConsonant(this._firstStressedSyllable(word2));
1145 
1146             //log("'"+c1+"'=?'"+c2+"'");
1147             
1148             return (strOk(c1) && strOk(c2) && c1 === c2);
1149             
1150         },
1151 
1152         /**
1153          * Returns the first stressed syllable of the input word
1154          * @param {string} word
1155          * @returns {string}   
1156          */
1157         _firstStressedSyllable : function(word) {
1158 
1159             var raw = this._getRawPhones(word), idx = -1, c, firstToEnd;
1160 
1161             if (!strOk(raw)) return E; // return null?
1162             
1163             idx = raw.indexOf(RiLexicon.STRESSED);
1164 
1165             if (idx < 0) return E; // no stresses... return null?
1166             
1167             c = raw.charAt(--idx);
1168 
1169             while (c != ' ') {
1170                 if (--idx < 0) {
1171                     // single-stressed syllable
1172                     idx = 0;
1173                     break;
1174                 }
1175                 c = raw.charAt(idx);
1176             }
1177             
1178             firstToEnd = idx === 0 ? raw : trim(raw.substring(idx));
1179             idx = firstToEnd.indexOf(' ');
1180 
1181             return idx < 0 ? firstToEnd : firstToEnd.substring(0, idx);
1182             
1183         },
1184         
1185         /**  
1186          * Returns true for 'word' if it has a verb form. That is, if any of its possible parts of speech 
1187          *  are any variant of a verb in the PENN part-of-speech tag set (e.g. vb, vbg, vbd, vbp, vbz));
1188          * @param {string} word the PENN part-of-speech tag
1189          * @returns {boolean} true if the word can be used as a verb 
1190          */
1191         isVerb: function(word) {
1192 
1193             ///if (word && word.indexOf(" ") != -1) err("Only accepts a single word"); // TODO: add test
1194             
1195              var pos = RiTa.getPosTags(word);
1196              //console.log(word+":"+pos)
1197              return PosTagger.isVerb(pos.toString());
1198 
1199         },
1200         
1201         /**
1202          * Returns true for 'word' if it has a noun form. That is, if any of its possible parts of speech 
1203          *  are any variant of a noun in the PENN part-of-speech tag set(e.g. nn, nns, nnp, nnps)
1204          * @param {string} word the PENN part-of-speech tag
1205          * @returns {boolean} true if the word can be used as a noun
1206          */
1207         isNoun : function(word) {
1208 
1209             if (word && word.indexOf(" ") != -1) err("Only accepts a single word"); // TODO: add test
1210           
1211             //return RiTa._tagForWordNet(word) === 'n' ;
1212             
1213             var pos = RiTa.getPosTags(word);
1214             return PosTagger.isNoun(pos.toString());
1215 
1216         },
1217         
1218         /**
1219          * Returns true for 'word' if it has an adverb form. That is, if any of its possible parts of speech 
1220          *  are any variant of an adverb in the PENN part-of-speech tag set (e.g. rb, rbr, rbs)
1221          * @param {string} word the PENN part-of-speech tag
1222          * @returns boolean} true if the word can be used as an adverb 
1223          */
1224         isAdverb : function(word) {
1225            
1226             if (word && word.indexOf(" ") != -1) err("Only accepts a single word"); // TODO: add test
1227           
1228             //return RiTa.tagForWordNet(word) === 'r' ;
1229             
1230             var pos = RiTa.getPosTags(word);
1231             return PosTagger.isAdverb(pos.toString());
1232 
1233         },
1234         
1235         /**
1236           * Returns true for 'word' if it has an adjective form. That is, if any of its possible parts of speech 
1237          *  are any variant of an adjective in the PENN part-of-speech tag set (e.g. jj, jjr, jjs)
1238          * @param {string} word the PENN part-of-speech tag
1239          * @returns {boolean} true if the word can be used as an adjective 
1240          */
1241         isAdjective : function(word) {
1242             
1243             if (word && word.indexOf(" ") != -1) err("Only accepts a single word"); // TODO: add test
1244             
1245             //return RiTa._tagForWordNet(word) === 'a' ; 
1246             
1247             var pos = RiTa.getPosTags(word);
1248             return PosTagger.isAdj(pos.toString());
1249             
1250         },
1251         
1252         
1253         /**
1254          * Returns a String containing the phonemes for each syllable of each word of the input text, 
1255          * delimited by dashes (phonemes) and semi-colons (words). For example, the 4 syllables of the phrase 
1256          * 'The dog ran fast' is "dh-ax:d-ao-g:r-ae-n:f-ae-s-t".
1257          * 
1258          * @param {string} word
1259          * 
1260          * @returns {string} the phonemes for each syllable of each word, or null if no text has been input.
1261          */
1262         _getSyllables : function(word) {
1263             
1264             if (!Type.is(word,S)) err('Bad type');
1265            
1266             if (!word.length) return E; 
1267             
1268             var wordArr = RiTa.tokenize((word)), phones, raw = [];
1269             
1270             for (var i=0; i< wordArr.length; i++) {
1271                 
1272                 raw[i] = this._getRawPhones(wordArr[i]).replace(/ /g, "/");
1273             }
1274             
1275             return RiTa.untokenize(raw).replace(/1/g, "").trim();
1276             
1277         },
1278 
1279         /**
1280          * Returns a String containing all phonemes for the input text, delimited by semi-colons,
1281          * or null if not found
1282          * 
1283          * @example "dh:ax:d:ao:g:r:ae:n:f:ae:s:t"
1284          * 
1285          * @param {string} word
1286          * 
1287          * @returns {string} all phonemes, or null if not found
1288          */
1289         _getPhonemes : function(word) {
1290 
1291             if (!word || !word.length) return null; 
1292 
1293             var wordArr = RiTa.tokenize(word), raw = [];
1294             
1295             for (var i=0; i< wordArr.length; i++)
1296             {
1297 
1298                 if (RiTa.isPunctuation(wordArr[i])) continue;
1299 
1300                 // raw[i] = wordArr[i].length
1301                 raw[i] = this._getRawPhones(wordArr[i]);
1302 
1303                 if (!raw[i].length) return null;
1304                     //err("Unable to lookup (need LTSEngine): "+wordArr[i]);
1305 
1306                 raw[i] = raw[i].replace(/ /g, "-");
1307             }
1308 
1309             return RiTa.untokenize(raw).replace(/1/g, E).trim(); 
1310         },
1311 
1312         /**
1313          * Returns a String containing the stresses for each syllable of the input text, delimited by semi-colons, 
1314          * @example "0:1:0:1", with 1's meaning 'stressed', and 0's meaning 'unstressed', 
1315          * 
1316          * @param {string} word
1317          * 
1318          * @returns {string} stresses for each syllable, or null if no text has been input.
1319          */
1320         _getStresses : function(words) {
1321 
1322             var stresses = [], phones, raw = [],
1323                 wordArr = Type.is(words,A) ? words : RiTa.tokenize(words);
1324 
1325             if (!words.length) return stresses;
1326             
1327             for (var i=0; i< wordArr.length; i++) {
1328                 
1329                 if (!RiTa.isPunctuation(wordArr[i]))
1330                     raw[i] = this._getRawPhones(wordArr[i]);
1331             }
1332 
1333             for (var i = 0; i < raw.length; i++) {
1334 
1335                 if (raw[i]) { // ignore undefined array items (eg Punctuation)
1336                     
1337                     phones = raw[i].split(SP);
1338                     for (var j = 0; j < phones.length; j++) {
1339 
1340                         var isStress = (phones[j].indexOf(RiLexicon.STRESSED) > -1) 
1341                             ? RiLexicon.STRESSED : RiLexicon.UNSTRESSED;
1342                         
1343                         if (j > 0) isStress = "/" + isStress;
1344 
1345                         stresses.push(isStress);            
1346                     }
1347                 }
1348             }
1349             
1350             return stresses.join(" ").replace(/ \//g, "/");
1351 
1352         },
1353         
1354         /**
1355          * Returns the raw dictionary data used to create the default lexicon
1356          * @returns {object} dictionary mapping words to their pronunciation/pos data
1357          */
1358         getLexicalData : function() {
1359             
1360             return RiLexicon.data;
1361             
1362         },
1363         
1364         /**
1365          * Allows one to set the raw dictionary data used to create the default lexicon.
1366          * See RiLexicon.addWord() for data format
1367          * 
1368          * @param {object} dictionaryDataObject mapping words to their pronunciation/pos data
1369          * @returns {object} this RiLexicon
1370          */
1371         setLexicalData : function(dictionaryDataObject) {
1372 
1373             RiLexicon.data = dictionaryDataObject;
1374             
1375             return RiLexicon.data;
1376             
1377         },
1378         
1379         /**
1380          * Returns the raw dictionary entry for the given word (isn't necessary in typical usage) 
1381          * 
1382          * @param {string} word
1383          * 
1384          * @returns {array} a 2-element array of strings, 
1385          * the first is the stress and syllable data, 
1386          * the 2nd is the pos data,
1387          * or null if not found
1388          */
1389         _lookupRaw : function(word) {
1390 
1391             word = word.toLowerCase();
1392 
1393             if (RiLexicon.data[word]) return RiLexicon.data[word];
1394             
1395             log("[RiTa] No lexicon entry for '" + word + "'");
1396             
1397             return null; // if private, should return 'undefined' or null?
1398             
1399         },
1400         
1401 
1402         _getRawPhones : function(word) {
1403             
1404             var data = this._lookupRaw(word);
1405             return (data && data.length==2) ? data[0] : E; // TODO: verify 
1406             
1407         },
1408 
1409 
1410         _getPosData : function(word) {
1411             
1412             var data = this._lookupRaw(word);
1413             return (data && data.length==2) ? data[1] : E; // TODO: verify
1414             
1415         },
1416 
1417         
1418         _getPosArr : function(word) { // SHOULD BE PRIVATE
1419             
1420             var pl = this._getPosData(word);
1421             
1422             if (!strOk(pl)) return []; // TODO: verify 
1423             
1424             return pl.split(SP);
1425             
1426         },
1427 
1428         
1429         _firstConsonant : function(rawPhones) {
1430 
1431             if (!strOk(rawPhones)) return E; // return null?
1432             
1433             var phones = rawPhones.split(RiLexicon.PHONEME_BOUNDARY);
1434             // var phones = rawPhones.split(PHONEME_BOUNDARY);
1435             
1436             if (!isNull(phones)) {
1437                 
1438                 for (var j = 0; j < phones.length; j++) {
1439                     if (this._isConsonant(phones[j].charAt(0))) // first letter only
1440                         return phones[j];
1441                 }
1442             }
1443             return E; // return null?
1444             
1445         },
1446         
1447 
1448         _lastStressedPhoneToEnd : function(word) {
1449 
1450             if (!strOk(word)) return E; // return null?
1451             
1452             var idx, c, result;
1453             var raw = this._getRawPhones(word);
1454 
1455             if (!strOk(raw)) return E; // return null?
1456             
1457             idx = raw.lastIndexOf(RiLexicon.STRESSED);
1458             
1459             if (idx < 0) return E; // return null?
1460             
1461             c = raw.charAt(--idx);
1462             while (c != '-' && c != ' ') {
1463                 if (--idx < 0) {
1464                     return raw; // single-stressed syllable
1465                 }
1466                 c = raw.charAt(idx);
1467             }
1468             result = raw.substring(idx + 1);
1469             
1470             return result;
1471             
1472         },
1473 
1474         /**
1475          * Returns a random word from the lexicon
1476          * 
1477          * @param {string} pos (optional)
1478          * @param {string} syllableCount (optional)
1479          * @returns {string} random word
1480          */
1481         getRandomWord : function() {  // takes nothing, pos, syllableCount, or both 
1482             
1483             var found = false, a = arguments, wordArr = Object.keys(RiLexicon.data),
1484                 ran = Math.floor(Math.random() * Object.keys(RiLexicon.data).length),
1485                 ranWordArr = shuffle(wordArr);
1486             
1487             switch (a.length) {
1488                     
1489                 case 2: //a[0]=pos  a[1]=syllableCount
1490                     
1491                         a[0] = trim(a[0].toUpperCase()); 
1492                         
1493                         for(var j = 0; j < PosTagger.TAGS.length; j++) { 
1494                             
1495                             if (PosTagger.TAGS[j] == a[0]) found = true;
1496                         } 
1497                         
1498                         if (found) { 
1499                             
1500                             for(var i=0; i< ranWordArr.length; i++){
1501                                 
1502                                 var data = this._lookupRaw(ranWordArr[i]);
1503                                 var posTag = RiTa.getPosTags(ranWordArr[i]);
1504                                 
1505                                 if (data[0].split(" ").length == a[1] && a[0] == posTag[0].toUpperCase()) {
1506                                     return ranWordArr[i];
1507                                 }
1508                             } 
1509                         } 
1510                         
1511                         return E;
1512                         
1513                     break;
1514                     
1515                 case 1:
1516                     
1517                     if (Type.is(a[0],S)) { //pos
1518                         
1519                         a[0] = trim(a[0].toUpperCase()); 
1520                         
1521                         for(var j = 0; j < PosTagger.TAGS.length; j++) {
1522                             
1523                             if (PosTagger.TAGS[j] == a[0]) found = true;
1524                         } 
1525                         
1526                         if (found) { 
1527                             
1528                             for(var i=0; i< ranWordArr.length; i++){
1529                                 
1530                                 var posTag = RiTa.getPosTags(ranWordArr[i]);
1531                                 
1532                                 if (a[0] == posTag[0].toUpperCase()) {
1533                                     return ranWordArr[i];
1534                                 }
1535                             } 
1536                         } 
1537                     }
1538                     
1539                     else { //syllableCount    
1540                         
1541                         for(var i=0; i< ranWordArr.length; i++) {
1542                             
1543                             var data = this._lookupRaw(ranWordArr[i]);
1544                             
1545                             if (data[0].split(" ").length == a[0]) {
1546                                 
1547                                 return ranWordArr[i];
1548                             }
1549                         } 
1550                     }
1551                     
1552                     break;
1553                     
1554                 case 0:
1555                     
1556                     return wordArr[ran];
1557             }
1558             return E;
1559             
1560         },
1561  
1562     }
1563     
1564     Phones = {
1565         
1566           consonants: [ 'b', 'ch', 'd', 'dh', 'f', 'g', 'hh', 'jh', 'k', 'l', 'm', 'n', 
1567                         'ng', 'p', 'r', 's', 'sh', 't', 'th', 'v', 'w', 'y', 'z', 'zh' ],
1568 
1569           vowels: [ 'aa', 'ae', 'ah', 'ao', 'aw', 'ax', 'ay', 'eh', 'er', 'ey', 'ih', 'iy',
1570                     'ow', 'oy', 'uh', 'uw' ],
1571     
1572           onsets: [ 'p', 't', 'k', 'b', 'd', 'g', 'f', 'v', 'th', 'dh', 's', 'z', 'sh', 'ch', 'jh', 'm',
1573                     'n', 'r', 'l', 'hh', 'w', 'y', 'p r', 't r', 'k r', 'b r', 'd r', 'g r', 'f r',
1574                     'th r', 'sh r', 'p l', 'k l', 'b l', 'g l', 'f l', 's l', 't w', 'k w', 'd w', 
1575                     's w', 's p', 's t', 's k', 's f', 's m', 's n', 'g w', 'sh w', 's p r', 's p l',
1576                     's t r', 's k r', 's k w', 's k l', 'th w', 'zh', 'p y', 'k y', 'b y', 'f y', 
1577                     'hh y', 'v y', 'th y', 'm y', 's p y', 's k y', 'g y', 'hh w', '' ],
1578     
1579           digits: [ 'z-ih-r-ow', 'w-ah-n', 't-uw', 'th-r-iy', 'f-ao-r', 'f-ay-v', 's-ih-k-s', 
1580                     's-eh1-v-ax-n', 'ey-t', 'n-ih-n' ]
1581     }
1582     
1583     ////////////////////////////////////////////////////////////////
1584     // RiString
1585     ////////////////////////////////////////////////////////////////
1586     
1587     //RiString.DEFAULT_FEATURES = [ 'Phonemes', 'Stresses', 'Words', 'Syllables' ];
1588     
1589     /**
1590      * @name RiString
1591      * 
1592      * @class The basic text container object, implementing a variety of 
1593      * additional functionality atop the javascript string object
1594      */
1595     RiString = makeClass();
1596 
1597     
1598     // ////////////////////////////////////////////////////////////
1599     // Member functions
1600     // ////////////////////////////////////////////////////////////
1601     
1602     RiString.prototype = {
1603             
1604         /**
1605          * The RiString constructor function
1606          * 
1607          * @param {string} the text 
1608          */
1609         initialize : function(text) {
1610             
1611             Type.ok(text,S);
1612             this._text = text;
1613             this.features = undefined;
1614         },
1615         
1616         /**
1617          * Computes a set of features for the contained string, including
1618          * phonemes, syllables, stresses, etc.
1619          * To access any of these, use get(name), e.g., 
1620          * 
1621          * @example myRiString.get('phonemes') ||  myRiString.get(RiTa.PHONEMES);
1622          * 
1623          * @returns this RiString
1624          */
1625         analyze : function() {
1626     
1627             var words = (this._text.indexOf(SP) ? RiTa.tokenize(this._text) : [this._text]),
1628                 lex = RiLexicon._getInstance(), slash = '/', stressyls, raw, delim = '-', 
1629                 phonemes = E, syllables = E, stresses = E, lts;
1630         
1631             this.features = this.features || {};
1632             
1633             for (var i = 0, l = words.length; i < l; i++) {
1634                 
1635                 raw = lex._getRawPhones(words[i]); 
1636                 
1637                 if (!raw) {
1638                     
1639                     if (!RiTa.SILENT && console)
1640                         console.log("[RiTa] Using LTS for '"+words[i]+"'");
1641                       
1642                     lts = lts || LetterToSound();
1643                     raw = this.syllabify(lts.getPhones(words[i]));
1644                 }
1645  
1646                 phonemes += raw.replace(/[0-2]/g, E).replace(/ /g, delim) + SP;
1647                 syllables += raw.replace(/ /g, slash).replace(/1/g, E) + SP;
1648 
1649                 stressyls = raw.split(SP);   
1650                 for (var j = 0; j < stressyls.length; j++) {
1651 
1652                     if (!stressyls[j].length) continue;
1653                     
1654                     stresses += (stressyls[j].indexOf(RiLexicon.STRESSED) > -1) 
1655                         ? RiLexicon.STRESSED : RiLexicon.UNSTRESSED;
1656                     
1657                     if (j < stressyls.length-1) stresses += slash;      
1658                 }
1659                 if (!endsWith(stresses, SP)) stresses += SP;     
1660             }
1661             this.features.phonemes = phonemes.trim();
1662             this.features.stresses = stresses.trim();
1663             this.features.syllables = syllables.trim();
1664             
1665             //log(this.features);
1666     
1667             return this;
1668         },
1669         
1670 
1671         /**
1672          *  Syllabifies the input, given a string of phonemes from the CMU pronouncing dictionary set
1673          *   (with optional stress numbers after vowels), or an array of phonemes,  e.g. "B AE1 T" or ["B", "AE1", "T"]'''
1674          *       
1675          *  @param {string or array} input containing
1676          *  @returns {string} 
1677          */
1678         syllabify : function(input) {
1679            
1680             var dbug, None=undefined, internuclei = [], syllables = [],   // returned data structure.
1681                 sylls = ((typeof (input) == 'string') ? input.split('-') : input);
1682 
1683             for (var i = 0; i < sylls.length; i++) {
1684             
1685                 var phoneme = sylls[i].trim(), stress = None;
1686 
1687                 if (!phoneme.length) continue;
1688                 
1689                 if ( isNum(last(phoneme)) ) {
1690                     
1691                     stress = parseInt(last(phoneme));
1692                     phoneme = phoneme.substring(0, phoneme.length-1);
1693                 }
1694                 
1695                 if(dbug)console.log(i+")"+phoneme + ' stress='+stress+' inter='+internuclei.join(':'));
1696                 
1697                 if (inArray(Phones.vowels, phoneme)) {
1698          
1699                     // Split the consonants seen since the last nucleus into coda and onset.            
1700                     var coda = None, onset = None;
1701                     
1702                     // Make the largest onset we can. The 'split' variable marks the break point.
1703                     for (var split = 0; split < internuclei.length+1; split++) {
1704                         
1705                         coda  = internuclei.slice(0, split);
1706                         onset = internuclei.slice(split, internuclei.length);
1707                         
1708                         if(dbug)console.log('  '+split+') onset='+onset.join(':')+'  coda='+coda.join(':')+'  inter='+internuclei.join(':'));
1709                         
1710                         // If we are looking at a valid onset, or if we're at the start of the word
1711                         // (in which case an invalid onset is better than a coda that doesn't follow
1712                         // a nucleus), or if we've gone through all of the onsets and we didn't find
1713                         // any that are valid, then split the nonvowels we've seen at this location.
1714                         var bool = inArray(Phones.onsets, onset.join(" "));
1715                         if (bool || syllables.length == 0 || onset.length == 0) {
1716                             if(dbug)console.log('  break '+phoneme);
1717                            break;
1718                         }
1719                     }
1720                     
1721                     //if(dbug)console.log('  onset='+join(',',onset)+'  coda='+join(',',coda));
1722                     
1723                     // Tack the coda onto the coda of the last syllable. Can't do it if this
1724                     // is the first syllable.
1725                     if (syllables.length > 0 ) {
1726                         
1727                         //syllables[syllables.length-1][3] = syllables[syllables.length-1][3] || [];
1728                         //console.log('  len='+syllables[syllables.length-1][3].length);
1729                         extend(syllables[syllables.length-1][3], coda);
1730                         if(dbug)console.log('  tack: '+coda+' -> len='+syllables[syllables.length-1][3].length+" ["+syllables[syllables.length-1][3]+"]");
1731                     }
1732                     
1733                     // Make a new syllable out of the onset and nucleus.
1734 
1735                     var toPush = [ [stress], onset, [phoneme], [] ];
1736                     syllables.push(toPush);
1737                         
1738                     // At this point we've processed the internuclei list.
1739                     internuclei = [];
1740                 }
1741                 
1742                 else if (!inArray(Phones.consonants, phoneme) && phoneme != " ") {
1743                     throw Error('Invalid phoneme: ' + phoneme);
1744                 }
1745                     
1746                 else { // a consonant
1747                     
1748                     //console.log('inter.push: '+phoneme);
1749                     internuclei.push(phoneme)
1750                 }
1751             }
1752           
1753             
1754             // Done looping through phonemes. We may have consonants left at the end.
1755             // We may have even not found a nucleus.
1756             if (internuclei.length > 0) {
1757 
1758                 if (syllables.length == 0) {
1759                     
1760                     syllables.push([ [None], internuclei, [], [] ]);
1761                 }
1762                 else {
1763                     
1764                     extend(syllables[syllables.length-1][3], internuclei);
1765                 }
1766                     
1767             }
1768               
1769             //if(dbug)console.log((syllables));
1770             
1771             return this._stringify(syllables);
1772         },
1773           
1774         /*
1775          * Takes a syllabification and turns it into a string of phonemes, 
1776          * delimited with dashes, and spaces between syllables 
1777          */
1778         _stringify : function(syllables) {
1779                 
1780             var ret = [];
1781             for (var i = 0; i < syllables.length; i++) {
1782                 
1783                 var syl = syllables[i];
1784                 var stress = syl[0][0];
1785                 var onset = syl[1];
1786                 var nucleus = syl[2];
1787                 var coda = syl[3];
1788               
1789                 if (stress != undefined && nucleus.length) // dch
1790                     nucleus[0] += (''+stress);
1791                 
1792                 var data = [];
1793                 for (var j = 0; j < onset.length; j++) 
1794                     data.push(onset[j]);
1795                 
1796                 for (var j = 0; j < nucleus.length; j++) 
1797                    data.push(nucleus[j]);
1798                 
1799                 for (var j = 0; j < coda.length; j++) 
1800                    data.push(coda[j]);
1801                 
1802                 ret.push(data.join('-'));
1803             }
1804             
1805             return ret.join(' ');
1806         },
1807                         
1808         
1809         // TMP: remove
1810         _splitSyllables : function(word) {  
1811             
1812             //console.log('_splitSyllables='+word);
1813 
1814             var str = E, res = [], phones = word.split('-'), gotFirstVowel = false;
1815             
1816             for (var j = 0; j < phones.length; j++) {
1817                 
1818                
1819                 var isVowel = RiLexicon._getInstance()._isVowel(phones[j].charAt(0));
1820                 if (isVowel) {
1821                     
1822                     if (gotFirstVowel) {
1823                         
1824                        res.push(str.substring(0,str.length-1));
1825                        str = phones[j];
1826                        if (j < phones.length-1)
1827                            str += '-';
1828                     }
1829                     else {
1830                         
1831                        gotFirstVowel = true;
1832                        str += phones[j];
1833                        if (j < phones.length-1)
1834                            str += '-';
1835                     }
1836                     continue;
1837                 } 
1838                 
1839                 //console.log(j+") "+phones[j]+","+frst);
1840                 str += phones[j];
1841                 if (j < phones.length-1)
1842                     str += '-';
1843             }
1844             
1845             res.push(str);
1846             
1847             return res;
1848         },
1849         
1850         _countChar : function(word,char)
1851         {
1852             var count = 0;
1853             for (var i = 0; i < word.length; i++) {
1854                 if (word.charAt(i)==char) count++;
1855             }
1856             return count;
1857         },
1858                 
1859         /**
1860          * Returns the specified feature, computing it first if necessary. 
1861          * Default features include RiTa.STRESSES, RiTa.PHONEMES, and RiTa.SYLLABLES.
1862          * 
1863          * @example myRiString.get('phonemes') ||  myRiString.get(RiTa.PHONEMES);
1864          * 
1865          * @returns {string} the requested feature
1866          */
1867         get : function(featureName) {
1868             
1869             this.features || this.analyze();
1870             return this.features[featureName.toLowerCase()];
1871             
1872         },
1873     
1874 
1875         /**
1876          * Tests if this string ends with the specified suffix.
1877          * 
1878          * @param {string} substr string the suffix.
1879          * 
1880          * @returns {boolean} true if the character sequence represented by the argument is a suffix of
1881          *         the character sequence represented by this object; false otherwise.          * 
1882          */
1883         endsWith : function(substr) {
1884             
1885             return endsWith(this._text, substr);
1886             
1887         },
1888              
1889         /**
1890          * Compares this RiString to the specified object. The result is true if and only if the
1891          * argument is not null and is a RiString object that represents the same sequence of
1892          * characters as this object.
1893          * 
1894          * @param {object} riString RiString object to compare this RiString against.
1895          * @returns {boolean} true if the RiString are equal; false otherwise.
1896          */
1897         equals : function(riString) {
1898             
1899             return riString._text === this._text;
1900             
1901         },
1902 
1903         /**
1904          * Compares this RiString to another RiString, ignoring case considerations.
1905          * 
1906          * @param {string | object} str String or RiString object to compare this RiString against
1907          * @returns {boolean} true if the argument is not null and the Strings are equal, ignoring
1908          *         case; false otherwise.
1909          */
1910         equalsIgnoreCase : function(str) {
1911             
1912             if (typeof str === S) {
1913                 
1914                 return str.toLowerCase() === this._text.toLowerCase();
1915             } 
1916             else {
1917                 
1918                 return str.text().toLowerCase() === this._text.toLowerCase();
1919             }
1920             
1921         },
1922 
1923         /**
1924          * Gets/sets the text contained by this object
1925          * 
1926          * @param {string} text (optional)
1927          * 
1928          * @returns {object | string} the contained text (for sets) or this RiString (for gets)
1929          */
1930         text : function(theText) {
1931             
1932             if (arguments.length>0) {
1933                 this._text = theText;
1934                 this.features = undefined;
1935                 return this;
1936             }
1937             return this._text;
1938             
1939         },
1940 
1941         /**
1942          * Returns an array of part-of-speech tags, one per word, using RiTa.tokenize() and RiTa.posTag().
1943          *
1944          * @returns {array} strings of pos, one per word
1945          */
1946         pos : function() {
1947                    
1948             var words = RiTa.tokenize((this._text)); // was getPlaintext()
1949             var tags = PosTagger.tag(words); 
1950   
1951             for ( var i = 0, l = tags.length; i < l; i++) {
1952                 if (!strOk(tags[i])) 
1953                     err("RiString: can't parse pos for:" + words[i]);
1954             }
1955         
1956             return tags;
1957             
1958         },
1959 
1960         /**
1961          * Returns the part-of-speech tag for the word at 'index', using RiTa.tokenize() and RiTa.posTag().
1962          * 
1963          * @param {number} index the word index
1964          * @returns {string} the pos
1965          */
1966         posAt : function(index) {
1967             
1968             var tags = this.pos();
1969 
1970             if (isNull(tags) || tags.length == 0 || index < 0 || index >= tags.length)
1971                 return E;
1972             
1973             return tags[index];
1974             
1975         },
1976 
1977         /**
1978          * Returns the word at 'index', according to RiTa.tokenize()
1979          * 
1980          * @param {number} index the word index
1981          * @returns {string} the word
1982          */
1983         wordAt : function(index) {
1984             
1985             var words = RiTa.tokenize((this._text));
1986             if (index < 0 || index >= words.length)
1987                 return E;
1988             return words[index];
1989             
1990         },
1991 
1992         /**
1993          * Returns the number of words in the object, according to RiTa.tokenize().
1994          * 
1995          * @returns {number} number of words
1996          */
1997         wordCount : function() {
1998             
1999             if (!this._text.length) return 0;
2000             return this.words().length;
2001             
2002         },
2003 
2004         /**
2005          * Returns the array of words in the object, via a call to RiTa.tokenize().
2006          * 
2007          * @returns {array} strings, one per word
2008          */
2009         words : function() { //TODO: change to words()
2010             
2011             return RiTa.tokenize(this._text);
2012             
2013         },
2014 
2015         /**
2016          * Returns the index within this string of the first occurrence of the specified character.
2017          * 
2018          * @param {string} searchstring (Required) or character to search for
2019          * @param {number} start (Optional) The start position in the string to start the search. If omitted,
2020          *        the search starts from position 0
2021          * @returns {number} the first index of the matching pattern or -1 if none are found
2022          */
2023         indexOf : function(searchstring, start) {
2024             
2025             return this._text.indexOf(searchstring, start);
2026             
2027         },
2028 
2029         /**
2030          * Inserts 'newWord' at 'wordIdx' and shifts each subsequent word accordingly.
2031          *
2032          * @returns {object} this RiString
2033          */
2034         insertWordAt : function(newWord, wordIdx) {
2035                     
2036             var words = this.words();
2037             if (newWord && newWord.length && wordIdx >= 0 && wordIdx < words.length) {
2038              
2039                 // filthy hack to preserve punctuation in 'newWord'
2040                 words.splice(wordIdx,0, DeLiM+newWord+DeLiM);
2041                 
2042                 
2043                 this.text( RiTa.untokenize(words).replace(new RegExp(DeLiM,'g'),E) );
2044             }
2045 
2046             return this;
2047             
2048         },
2049 
2050         /**
2051          * Returns the index within this string of the last occurrence of the specified character.
2052          * 
2053          * @param {string} searchstring The string to search for
2054          * @param {number} start (Optional) The start position in the string to start the search. If omitted,
2055          *        the search starts from position 0
2056          *        
2057          * @returns {number} the last index of the matching pattern or -1 if none are found
2058          */
2059         lastIndexOf : function(searchstring, start) {
2060             
2061             return this._text.lastIndexOf(searchstring, start);
2062             
2063         },
2064 
2065         /**
2066          * Returns the length of this string.
2067          * 
2068          * @returns {number} the length
2069          */
2070         length : function() {
2071             
2072             return this._text.length;
2073             
2074         },
2075 
2076         /**
2077          * Searches for a match between a substring (or regular expression) and the contained
2078          * string, and _returns the matches
2079          * 
2080          * @param {string} regex Regular expression
2081          * @returns {array} strings matches or empty array if none are found
2082 
2083          */
2084         match : function(regex) {
2085             
2086             var result = this._text.match(regex);
2087             if(isNull(result)){return [];} else {return result;}
2088             
2089         },
2090         
2091         
2092         /**
2093          * Extracts a part of a string from this RiString
2094          * 
2095          * @param {number} begin (Required) The index where to begin the extraction. First character is at
2096          *        index 0
2097          * @param {number} end (Optional) Where to end the extraction. If omitted, slice() selects all
2098          *        characters from the begin position to the end of the string
2099          * @returns {object} this RiString
2100          */
2101         slice : function(begin, end) {
2102             
2103             var res = this._text.slice(begin, end) || E;
2104             return this.text(res);
2105              
2106         },
2107 
2108         /**
2109          * Replaces each substring of this string that matches the given regular expression with the
2110          * given replacement.
2111          * 
2112          * @param {string | regex } pattern the pattern to be matched
2113          * @param {string} replacement the replacement sequence of char values
2114          * @returns {object} this RiString
2115          */
2116         replaceAll : function(pattern, replacement) {
2117             
2118             if (pattern && (replacement || replacement==='')) {
2119                 this._text = replaceAll(this._text, pattern, replacement);
2120             }
2121             return this;
2122             
2123         },
2124 
2125         /**
2126          * Replaces the character at 'idx' with 'replaceWith'. If the specified 'idx' is less than
2127          * zero, or beyond the length of the current text, there will be no effect.
2128          * 
2129          * @param {number} idx the character index
2130          * @param {string} replaceWith the replacement
2131          * @returns {object} this RiString
2132          */
2133         replaceCharAt : function(idx, replaceWith) {
2134             
2135             if (idx < 0 || idx >= this.length()) 
2136                 return this;
2137                 
2138             var s = this.text();
2139             var beg = s.substring(0, idx);
2140             var end = s.substring(idx + 1);
2141             var s2 = null;
2142             
2143             if (replaceWith)
2144                 s2 = beg + replaceWith + end;
2145             else
2146                 s2 = beg + end;
2147 
2148             return this.text(s2);
2149             
2150         },
2151 
2152         /**
2153          * Replaces the first instance of 'regex' with 'replaceWith'
2154          * 
2155          * @param {string | regex} regex the pattern
2156          * @param {string} replaceWith the replacement
2157          * 
2158          * @returns this RiString
2159          */
2160         replaceFirst : function(regex, replaceWith) {
2161             
2162             this._text = this._text.replace(regex, replaceWith);
2163             return this;  
2164         },
2165         
2166         /**
2167          * Replaces the last instance of 'regex' with 'replaceWith'
2168          * 
2169          * @param {string | regex} regex the pattern
2170          * @param {string} replaceWith the replacement
2171          * 
2172          * @returns this RiString
2173          */
2174         replaceLast : function(regex, replaceWith) {
2175             
2176                 if (!regex) return this;
2177                 
2178                 if (Type.is(regex,S)) {
2179                     log('creating regex for: '+regex);
2180                     regex = new RegExp(regex);
2181                 }
2182                 
2183                 log('regex: '+regex);
2184 
2185                 var ret = this._text;
2186                 
2187                 if (ret.match(regex)) {
2188                   var target = RegExp.lastMatch;
2189                   var tmp = this._text.split(target);
2190                   var last = tmp.pop();
2191                   tmp[tmp.length-1] += replaceWith + last;
2192                   ret = tmp.join(target);
2193                 }
2194                 
2195                 this._text = ret;
2196                 
2197                 return this;
2198 
2199 //                if (this._text.lastIndexOf(regex)>=0){ //this do not work for regex..
2200 //                    var ind = this._text.lastIndexOf(regex);
2201 //                    var before = this._text.substring(0, ind);
2202 //                    var after = this._text.substring(ind+regex.length);
2203 //        
2204 //                    var finished = before + replaceWith + after;
2205 //                    this._text = finished;
2206 //                    return this;
2207 //                }
2208 //            }
2209         },
2210 
2211         /**
2212          * Replaces the word at 'wordIdx' with 'newWord'
2213          * 
2214          * @param {number} wordIdx the index
2215          * @param {string} newWord the replacement
2216          * 
2217          * @returns {object} this RiString
2218          */
2219         replaceWordAt : function(wordIdx, newWord) {
2220             
2221             var words = this.words();
2222             
2223             if (wordIdx >= 0 && wordIdx < words.length) {
2224                 
2225                 words[wordIdx] = newWord;
2226                 
2227                 this.text(RiTa.untokenize(words));
2228             }
2229             
2230             return this;
2231             
2232         },
2233 
2234         /**
2235          * Split a RiString into an array of sub-RiString and return the new array.
2236          * 
2237          * If an empty string ("") is used as the separator, the string is split between each character.
2238          * 
2239          * @param {string} separator (Optional) Specifies the character to use for splitting the string. If
2240          *        omitted, the entire string will be returned. If an empty string ("") is used as the separator, 
2241          *        the string is split between each character.
2242          *        
2243          * @param {number} limit (Optional) An integer that specifies the number of splits
2244          * 
2245          * @returns {array} RiStrings
2246          */
2247         split : function(separator, limit) {
2248             
2249             var parts = this._text.split(separator, limit);
2250             var rs = [];
2251             for ( var i = 0; i < parts.length; i++) {
2252                 if (!isNull(parts[i]))
2253                     rs.push(new RiString(parts[i]));
2254             }
2255             return rs;
2256             
2257         },
2258 
2259         /**
2260          * Tests if this string starts with the specified prefix.
2261          * 
2262          * @param {string} substr string the prefix
2263          * @returns {boolean} true if the character sequence represented by the argument is a prefix of
2264          *         the character sequence represented by this string; false otherwise. Note also
2265          *         that true will be returned if the argument is an empty string or is equal to this
2266          *         RiString object as determined by the equals() method.
2267          */
2268         startsWith : function(substr) {
2269             
2270             return this.indexOf(substr) == 0;
2271             
2272         },
2273 
2274         /**
2275          * Extracts the characters from this objects contained string, beginning at 'start' and
2276          * continuing through the specified number of characters, and sets the current text to be
2277          * that string. (from Javascript String)
2278          * 
2279          * @param {number} start  The index where to start the extraction. First character is at
2280          *        index 0
2281          * @param {number} length (optional) The index where to stop the extraction. If omitted, it extracts the
2282          *        rest of the string
2283          * @returns {object} this RiString
2284          */
2285         substr : function(start, length) {
2286             
2287             var res = this._text.substr(start, length);
2288             return this.text(res);
2289             
2290         },
2291 
2292         /**
2293          * Extracts the characters from a string, between two specified indices, and sets the
2294          * current text to be that string. 
2295          * 
2296          * @param {number} from  The index where to start the extraction. First character is at
2297          *        index 0
2298          * @param {number} to (optional) The index where to stop the extraction. If omitted, it extracts the
2299          *        rest of the string
2300          * @returns {object} this RiString
2301          */
2302         substring : function(from, to) {
2303 
2304             return this.text(this._text.substring(from, to));
2305             
2306         },
2307 
2308         /**
2309          * Converts this object to an array of RiString objects, one per character
2310          * 
2311          * @returns {array} RiStrings with each letter as its own RiString element
2312          */
2313         toCharArray : function() {
2314             var parts = this._text.split(E);
2315             var rs = [];
2316             for ( var i = 0; i < parts.length; i++) {
2317                 if (!isNull(parts[i]))
2318                     rs.push(parts[i]);
2319             }
2320             return rs;
2321         },
2322 
2323         /**
2324          * Converts all of the characters in this RiString to lower case
2325          * 
2326          * @returns {object} this RiString
2327          */
2328         toLowerCase : function() {
2329             
2330             return this.text(this._text.toLowerCase());
2331             
2332          },
2333 
2334         /**
2335          * Returns the contained string object
2336          * 
2337          * @returns {string}
2338          */
2339         toString : function() {
2340             
2341             return "RiString["+this._text+"]";
2342             
2343         },
2344 
2345         /**
2346          * Returns true if and only if this string contains the specified sequence of char values.
2347          * 
2348          * @param {string} text text to be checked
2349          * @returns {boolean}
2350          */
2351         containsWord : function(text) {
2352             
2353             return this.indexOf(text) > -1;
2354             
2355         },
2356 
2357         /**
2358          * Converts all of the characters in this RiString to upper case
2359          * 
2360          * @returns {object} this RiString
2361          */
2362         toUpperCase : function() {
2363             
2364             return this.text(this._text.toUpperCase());
2365             
2366         },
2367 
2368         /**
2369          * Returns a copy of the string, with leading and trailing whitespace omitted.
2370          * 
2371          * @returns {object} this RiString
2372          */
2373         trim : function() {
2374             
2375             return this.text(trim(this._text));
2376             
2377         },
2378 
2379         /**
2380          * Returns the character at the given 'index', or empty string if none is found
2381          * 
2382          * @param {number} index index of the character
2383          * @returns {string} the character
2384          */
2385         charAt : function(index) {
2386 
2387             return this._text.charAt(index);
2388             
2389         },
2390 
2391         /**
2392          * Concatenates the text from another RiString at the end of this one
2393          * 
2394          * @returns {object} this RiString
2395          */
2396         concat : function(riString) {
2397             
2398             return this._text.concat(riString.text());
2399             
2400         },
2401                
2402         /**
2403          * Removes the character at the specified index
2404          * 
2405          * @param {number} idx the index
2406          * @returns {object} this RiString
2407          */
2408         removeCharAt : function(idx) { 
2409             
2410             this.text(this._text.substring(0, idx).concat(this._text.substring(idx + 1)));
2411             
2412         }
2413 
2414     }
2415     
2416     
2417     // ////////////////////////////////////////////////////////////
2418     // RiGrammar
2419     // ////////////////////////////////////////////////////////////
2420 
2421     /**
2422      * @name RiGrammar
2423      * @class Implementation of a (probabilistic) context-free grammar (with specific 
2424      * literary extensions) that performs generation from user-specified grammars.
2425      */
2426      /* <pre> 
2427      * 
2428         rg = new RiGrammar("mygrammar.g");
2429         System.out.println(rg.expand());</pre>
2430      *
2431      *   
2432      * RiTa grammar files are JSON text files that follow the format below:
2433      *  <pre>   myGrammar = {
2434           <start>
2435           <rule1> | <rule2> | <rule3>
2436         }
2437     
2438         {
2439           <rule2>
2440           terminal1 | 
2441           terminal2 | <rule1>
2442           # this is a comment 
2443         }
2444         ...</pre>   
2445      * <b>Primary methods of interest:</b>
2446      * <ul>
2447      * <li><code>expand()</code> which simply begins at the <start> state and 
2448      * generates a string of terminals from the grammar.<p>
2449      * <li><code>expandFrom(String)</code> which begins with the argument
2450      * String (which can consist of both non-terminals and terminals,) 
2451      * and expands from there. Notice that <code>expand()</code> is simply
2452      * a convenient version of <code>expandFrom("<start>");</code>.<p>
2453      * <li><code>expandWith(String, String)</code> takes 2 String arguments, the 1st 
2454      * (a terminal) is guaranteed to be substituted for the 2nd (a non-terminal). Once this 
2455      * substitution is made, the algorithm then works backwards (up the tree from the leaf)
2456      * ensuring that the terminal (terminal1) appears in the output string. 
2457      * For example, with the grammar fragment above, one might call:<p>
2458        <pre>
2459             grammar.expandWith(terminal1, "<rule2>");
2460       </pre>
2461      * assuring not only that <code><rule2></code>will be used at least 
2462      * once in the generation process, but that when it is, it will be replaced 
2463      * by the terminal "hello".
2464      *</ul>
2465      *
2466      *<li>A RiGrammar object will assign (by default) equal weights to all choices in a rule. 
2467      *One can adjust the weights by adding 'multipliers' as follows: (in the rule below,
2468      * 'terminal1' will be chosen twice as often as the 2 other choices.
2469      * <pre>   {
2470          <rule2>
2471          [2] terminal1 | 
2472          terminal2 | <rule1> 
2473        }</pre>
2474         
2475      *<li>The RiGrammar object supports callbacks, from your grammar, back into your code.
2476      * To generate a callback, add the method call in your grammar, surrounded by back-ticks, as follows:
2477      * <pre>   
2478      *     {
2479      *       <rule2>
2480      *       The cat ran after the `getRhyme("cat");` |
2481      *       The <noun> ran after the `pluralize(<noun>);` 
2482      *     }</pre>
2483      *     
2484      * Any number of arguments may be passed in a callback, but for each call,
2485      * there must be a corresponding method in the sketch, e.g.,
2486      * 
2487      * <pre>
2488      *    function pluralize(String s) {
2489      *      ...
2490      *    }
2491      * </pre>
2492      * 
2493      * @author dhowe 
2494      */
2495     RiGrammar = makeClass();
2496     
2497     RiGrammar.START_RULE = "<start>";
2498     RiGrammar.OPEN_RULE_CHAR = "<";
2499     RiGrammar.CLOSE_RULE_CHAR = ">";
2500     RiGrammar.PROB_PATT = /(.*[^\s])\s*\[([0-9.]+)\](.*)/;
2501     RiGrammar.OR_PATT = /\s*\|\s*/;
2502     RiGrammar.EXEC_PATT = /`[^`]+`/g;
2503     RiGrammar.STRIP_TICKS = /`([^`]+)`/g
2504     
2505     /**
2506      * Set/gets the execDisabled flag. Set to true (default=false) 
2507      * if you don't want to use the exec mechanism for callbacks. Useful if you want
2508      * to include backticks or method calls as terminals in your grammar.
2509      */
2510     RiGrammar._execDisabled = function(disableExec)
2511     {
2512         if (arguments.length==1) {
2513             RiGrammar._execDisabled = disableExec;
2514         }
2515         return RiGrammar._execDisabled;
2516     }
2517 
2518     RiGrammar.prototype = {
2519 
2520         /**
2521          * Initializes a grammar from an object or JSON string containing the rules
2522          * 
2523          * @param  {string | object} grammar containing the grammar rules
2524          */
2525         initialize : function(grammar) {
2526             
2527             if (Type.is(grammar,O) || Type.is(grammar,O)) 
2528                 err('Expects OBJECT or STRING');
2529             
2530             this._rules = {};
2531             this._execDisabled = false;
2532             grammar && this.setGrammar(grammar);  
2533         },
2534     
2535         /**
2536          * Loads a JSON grammar via AJAX call to 'url', replacing any existing grammar. 
2537          * @param {string} url of JSON file containing the grammar rules
2538          * @returns {object} this RiGrammar
2539          */
2540         _load : function(url) {
2541             
2542             this.reset();
2543             
2544             err("Implement me!");
2545             
2546             return this;
2547             
2548         },
2549     
2550         /**
2551          * Initializes a grammar from an object or JSON string containing the rules (rather than a file)
2552          * and replacing any existing grammar. 
2553          * @param  {string | object} grammar containing the grammar rules
2554          * @returns {object} this RiGrammar
2555          */
2556         setGrammar : function(grammar) {
2557             
2558             this.reset();
2559             
2560             grammar = (typeof grammar == S) ?  JSON.parse(grammar) : grammar 
2561             
2562             for (var rule in grammar) 
2563                 this.addRule(rule, grammar[rule]);
2564             
2565             return this;
2566             
2567         },
2568         
2569         /**
2570          * Returns the current set of rules as an associative array: {names -> definitions}
2571          * @returns {object} 
2572          */ 
2573         getRules : function()  {
2574             
2575             return this._rules;
2576             
2577         },
2578         
2579         
2580         /**
2581          * Deletes the named rule from the grammar
2582          * @returns {object} this RiGrammar
2583          */ 
2584         removeRule : function(name)  {
2585             
2586             name = this._normalizeRuleName(name);
2587             delete this._rules[name];
2588             return this;
2589             
2590         },
2591         
2592         /**
2593          * Makes a (deep) copy of this object
2594          * 
2595          * @returns {object} this RiGrammar
2596          */
2597         clone : function() { // TODO: test me well
2598 
2599           var tmp = RiGrammar();
2600           for (var name in this._rules) {
2601               tmp._rules[name] = this._rules[name];
2602           }
2603           return tmp;
2604           
2605         },
2606 
2607         
2608         /**
2609          * Adds a rule to the existing grammar, replacing any existing rule with the same name 
2610          * @param {string} name
2611          * @param {string} ruleStr
2612          * @param {number} weight
2613          * @returns {object} this RiGrammar
2614          */
2615         addRule : function(name, ruleStr, weight) 
2616         {
2617             var dbug = false;
2618     
2619             weight = (isNull(weight) ? 1.0 : weight); // default
2620 
2621             name = this._normalizeRuleName(name);
2622 
2623             if (dbug) log("addRule: "+name+ " -> "+ruleStr+" ["+weight+"]");
2624             
2625             var ruleset = ruleStr.split(RiGrammar.OR_PATT);
2626             //ruleset = "<noun-phrase> <verb-phrase>";
2627     
2628             for ( var i = 0; i < ruleset.length; i++) {
2629                 
2630                 var rule = ruleset[i];
2631                 var prob = weight;
2632                 var m = RiGrammar.PROB_PATT.exec(rule);
2633     
2634                 if (m != null) // found weighting
2635                 {
2636                     if (dbug) {
2637                         log("Found weight for " + rule);
2638                         for (i = 0; i < m.length; i++)
2639                             log("  " + i + ") '" + m[i] + "'");
2640                     }
2641                     rule = m[1] + m[3];
2642                     prob = m[2];
2643                     if (dbug) log("weight=" + prob + " rule='" + rule + "'");
2644                 }
2645     
2646                 if (this.hasRule(name)) {
2647                     if (dbug)log("rule exists");
2648                     var temp = this._rules[name];
2649                     temp[rule] = prob;
2650                 } 
2651                 else {
2652                     
2653                     // log("new rule");
2654                     var temp2 = {};
2655                     temp2[rule] = prob;
2656                     this._rules[name] = temp2;
2657                     if (dbug)log("added rule: "+name);
2658                 }
2659             }
2660             return this;
2661             
2662         },
2663       
2664         /**
2665          * Clears all rules in the current grammar
2666          * @returns {object} this RiGrammar
2667          */
2668         reset : function() {
2669             
2670            this._rules = {};
2671            return this;
2672            
2673         },
2674               
2675         /**
2676          * @param {string} pre name
2677          */
2678         getRule : function(pre) {
2679             
2680             pre = this._normalizeRuleName(pre);
2681        
2682             // log("getRule("+pre+")");
2683             var tmp = this._rules[pre];
2684             var name, cnt = 0;
2685             
2686             for (name in tmp) cnt++; // count the matching rules
2687             
2688             if (cnt == 1) {
2689                 //log("1returning: "+name+" / "+typeof name);
2690                 return name;
2691             } 
2692             else if (cnt > 1) {
2693                 
2694                 var sr = this._getStochasticRule(tmp);
2695                 //log("2returning: "+sr+" / "+typeof sr);
2696                 return sr;
2697             }
2698             else {
2699                 err("No rule found for: "+pre);
2700             }
2701             
2702         },
2703         
2704         /**
2705          * Prints the grammar rules to the console in human-readable format (useful for debugging) 
2706          * @returns {object} this RiGrammar
2707          */
2708         print : function() {
2709             
2710             if (console) {
2711                 console.log("Grammar----------------");
2712                 for ( var name in this._rules) {
2713                     
2714                     console.log("  '" + name + "' -> ");
2715                     var choices = this._rules[name];
2716                     for ( var p in choices) {
2717                         console.log("    '" + p + "' [" + choices[p] + "]");
2718                     }
2719                 }
2720                 console.log("-----------------------");
2721             }
2722             return this;
2723             
2724         },
2725         
2726         hasRule : function(name) {
2727             
2728             //log("hasRule("+name+")");
2729             name = this._normalizeRuleName(name);
2730             return (typeof this._rules[name] !== 'undefined');
2731             
2732         },
2733         
2734         /**
2735          * Expands a grammar from its '<start>' symbol
2736          * @returns {string}
2737          */
2738         expand : function() {
2739             
2740             return this.expandFrom(RiGrammar.START_RULE);
2741             
2742         },
2743         
2744         /**
2745          * Expands the grammar after replacing an instance of the non-terminal
2746          * 'symbol' with the String in 'literal'.
2747          * <P>
2748          * Guarantees that 'literal' will be in the final expanded String, 
2749          * assuming at least one instance of 'symbol' in the Grammar.
2750          * @param literal
2751          * @param symbol
2752          * 
2753          * @returns {string} expanded text
2754          */
2755         expandWith : function(literal, symbol) { // TODO: finish 
2756             
2757             //error("oops, caught in-between versions");
2758             
2759             var gr = this.clone();
2760             
2761             var match = false;
2762             for ( var name in gr._rules) {
2763                 if (name===symbol) {
2764                     var obj = {};
2765                     obj[literal] = 1.0;
2766                     gr._rules[name] = obj;
2767                     match = true;
2768                 }
2769             }
2770             if (!match) 
2771                 err("Rule '"+symbol+"' not found in grammar");
2772 
2773             // TODO: tmp, awful hack, write this correctly
2774             var tries, maxTries = 500;
2775             for (tries = 0 ;tries < maxTries; tries++) {
2776                 var s = gr.expand();
2777                 if (s.indexOf(literal)>-1)
2778                     return s;
2779             }
2780             err("\n[WARN] RiGrammar failed to complete after "+tries+" tries\n");
2781             
2782         },
2783         
2784         /**
2785          * @param input
2786          * @returns this
2787          */
2788         _handleExec : function(input) { // TODO: private
2789                        
2790             if (!input || !input.length) return E;
2791             
2792             // strip backticks and eval
2793             var exec = input.replace(RiGrammar.STRIP_TICKS, "$1");
2794             
2795             try {
2796                 //log("handleExec: "+exec);
2797                 input = eval(exec);
2798             }
2799             catch (e) {
2800                 warn("Error evaluating: "+input+" ignoring backticks\n  "+e.message);
2801             }
2802             return input;
2803         },
2804         
2805         /**
2806          * Expands the grammar, starting from the given symbol.
2807          * RiGrammar.expand() is equivalent to RiGrammar.expandFrom('').
2808          * 
2809          * @param {string} rule
2810          * @returns {string}
2811          * 
2812          */
2813         expandFrom : function(rule) {
2814             
2815             if (!this.hasRule(rule)) {
2816                 warn("Rule not found: " + rule + "\nRules: ");
2817                 (!RiTa.SILENT) && this.print();
2818             }
2819     
2820             var iterations = 0;
2821             var maxIterations = 1000;
2822             while (++iterations < maxIterations) {
2823                 
2824                 //log("expand: '"+rule +"'");
2825                 var next = this._expandRule(rule);
2826                 if (!next) {
2827 
2828                     //  we're done, check for back-ticked strings to eval?
2829 
2830                     (!this._execDisabled) && (rule=rule.replace(RiGrammar.EXEC_PATT, this._handleExec));                  
2831                                         
2832                     break;
2833                 }
2834                 rule = next;
2835             }
2836     
2837             if (iterations >= maxIterations)
2838                 warn("max number of iterations reached: " + maxIterations);
2839     
2840             return rule;
2841             
2842         },
2843             
2844         // Privates (can we hide these?) ----------------
2845 
2846         _expandRule : function(prod) { //private
2847             
2848             var dbug = false;
2849             if (dbug) log("_expandRule(" + prod + ")");
2850             
2851             for ( var name in this._rules) {
2852                 
2853                 var entry = this._rules[name];
2854                 if (dbug) log("  name=" + name+"  entry=" + entry+"  prod=" + prod+"  idx=" + idx);
2855                 var idx = prod.indexOf(name);
2856                 
2857                 if (idx >= 0) {
2858                     
2859                     var pre = prod.substring(0, idx);
2860                     var expanded = this.getRule(name);
2861                     var post = prod.substring(idx + name.length);
2862                     
2863                     if (dbug) log("  pre=" + pre+"  expanded=" + expanded+"  post=" + post+"  result=" + pre + expanded + post);
2864                     
2865                     return (pre + expanded + post);
2866                 }
2867                 
2868                 // do the exec check here, in while loop()
2869             }
2870             // what happens if we get here? no expansions left, return?
2871         },
2872         
2873         _normalizeRuleName : function(pre) {
2874             
2875             if (!strOk(pre)) return pre;
2876             
2877             if (!startsWith(pre, RiGrammar.OPEN_RULE_CHAR))
2878                 pre = RiGrammar.OPEN_RULE_CHAR + pre;
2879             
2880             if (!endsWith(pre,RiGrammar.CLOSE_RULE_CHAR))
2881                 pre += RiGrammar.CLOSE_RULE_CHAR;
2882 
2883             if (pre.indexOf('>>')>0) err(">>");
2884             
2885             return pre;
2886             
2887         },
2888         
2889         // private?? (add structure test case)
2890         _getStochasticRule : function(temp)    { // map
2891      
2892             var dbug = false;
2893             
2894             if (dbug) log("_getStochasticRule(" + temp + ")");
2895             
2896             var p = Math.random();
2897             var result, total = 0;
2898             for ( var name in temp) {
2899                 total += parseFloat(temp[name]);
2900             }
2901             
2902             if (dbug) log("total=" + total+"p=" + p);
2903             
2904              for ( var name in temp) {
2905                 if (dbug) log("  name=" + name);
2906                 var amt = temp[name] / total;
2907                 
2908                 if (dbug) log("amt=" + amt);
2909                 
2910                 if (p < amt) {
2911                     result = name;
2912                     if (dbug)log("hit!=" + name);
2913                     break;
2914                 } else {
2915                     p -= amt;
2916                 }
2917             }
2918             return result;
2919         }
2920         
2921     
2922     } // end RiGrammar
2923     
2924 
2925     var Easing = {
2926     
2927         Linear: {
2928     
2929             None: function ( k ) {
2930     
2931                 return k;
2932     
2933             }
2934     
2935         },
2936     
2937         Quadratic: {
2938     
2939             In: function ( k ) {
2940     
2941                 return k * k;
2942     
2943             },
2944     
2945             Out: function ( k ) {
2946     
2947                 return k * ( 2 - k );
2948     
2949             },
2950     
2951             InOut: function ( k ) {
2952     
2953                 if ( ( k *= 2 ) < 1 ) return 0.5 * k * k;
2954                 return - 0.5 * ( --k * ( k - 2 ) - 1 );
2955     
2956             }
2957     
2958         },
2959     
2960         Cubic: {
2961     
2962             In: function ( k ) {
2963     
2964                 return k * k * k;
2965     
2966             },
2967     
2968             Out: function ( k ) {
2969     
2970                 return --k * k * k + 1;
2971     
2972             },
2973     
2974             InOut: function ( k ) {
2975     
2976                 if ( ( k *= 2 ) < 1 ) return 0.5 * k * k * k;
2977                 return 0.5 * ( ( k -= 2 ) * k * k + 2 );
2978     
2979             }
2980     
2981         },
2982     
2983         Quartic: {
2984     
2985             In: function ( k ) {
2986     
2987                 return k * k * k * k;
2988     
2989             },
2990     
2991             Out: function ( k ) {
2992     
2993                 return 1 - --k * k * k * k;
2994     
2995             },
2996     
2997             InOut: function ( k ) {
2998     
2999                 if ( ( k *= 2 ) < 1) return 0.5 * k * k * k * k;
3000                 return - 0.5 * ( ( k -= 2 ) * k * k * k - 2 );
3001     
3002             }
3003     
3004         },
3005     
3006         Quintic: {
3007     
3008             In: function ( k ) {
3009     
3010                 return k * k * k * k * k;
3011     
3012             },
3013     
3014             Out: function ( k ) {
3015     
3016                 return --k * k * k * k * k + 1;
3017     
3018             },
3019     
3020             InOut: function ( k ) {
3021     
3022                 if ( ( k *= 2 ) < 1 ) return 0.5 * k * k * k * k * k;
3023                 return 0.5 * ( ( k -= 2 ) * k * k * k * k + 2 );
3024     
3025             }
3026     
3027         },
3028     
3029         Sinusoidal: {
3030     
3031             In: function ( k ) {
3032     
3033                 return 1 - Math.cos( k * Math.PI / 2 );
3034     
3035             },
3036     
3037             Out: function ( k ) {
3038     
3039                 return Math.sin( k * Math.PI / 2 );
3040     
3041             },
3042     
3043             InOut: function ( k ) {
3044     
3045                 return 0.5 * ( 1 - Math.cos( Math.PI * k ) );
3046     
3047             }
3048     
3049         },
3050     
3051         Exponential: {
3052     
3053             In: function ( k ) {
3054     
3055                 return k === 0 ? 0 : Math.pow( 1024, k - 1 );
3056     
3057             },
3058     
3059             Out: function ( k ) {
3060     
3061                 return k === 1 ? 1 : 1 - Math.pow( 2, - 10 * k );
3062     
3063             },
3064     
3065             InOut: function ( k ) {
3066     
3067                 if ( k === 0 ) return 0;
3068                 if ( k === 1 ) return 1;
3069                 if ( ( k *= 2 ) < 1 ) return 0.5 * Math.pow( 1024, k - 1 );
3070                 return 0.5 * ( - Math.pow( 2, - 10 * ( k - 1 ) ) + 2 );
3071     
3072             }
3073     
3074         },
3075     
3076         Circular: {
3077     
3078             In: function ( k ) {
3079     
3080                 return 1 - Math.sqrt( 1 - k * k );
3081     
3082             },
3083     
3084             Out: function ( k ) {
3085     
3086                 return Math.sqrt( 1 - --k * k );
3087     
3088             },
3089     
3090             InOut: function ( k ) {
3091     
3092                 if ( ( k *= 2 ) < 1) return - 0.5 * ( Math.sqrt( 1 - k * k) - 1);
3093                 return 0.5 * ( Math.sqrt( 1 - ( k -= 2) * k) + 1);
3094     
3095             }
3096     
3097         },
3098     
3099         Elastic: {
3100     
3101             In: function ( k ) {
3102     
3103                 var s, a = 0.1, p = 0.4;
3104                 if ( k === 0 ) return 0;
3105                 if ( k === 1 ) return 1;
3106                 if ( !a || a < 1 ) { a = 1; s = p / 4; }
3107                 else s = p * Math.asin( 1 / a ) / ( 2 * Math.PI );
3108                 return - ( a * Math.pow( 2, 10 * ( k -= 1 ) ) * Math.sin( ( k - s ) * ( 2 * Math.PI ) / p ) );
3109     
3110             },
3111     
3112             Out: function ( k ) {
3113     
3114                 var s, a = 0.1, p = 0.4;
3115                 if ( k === 0 ) return 0;
3116                 if ( k === 1 ) return 1;
3117                 if ( !a || a < 1 ) { a = 1; s = p / 4; }
3118                 else s = p * Math.asin( 1 / a ) / ( 2 * Math.PI );
3119                 return ( a * Math.pow( 2, - 10 * k) * Math.sin( ( k - s ) * ( 2 * Math.PI ) / p ) + 1 );
3120     
3121             },
3122     
3123             InOut: function ( k ) {
3124     
3125                 var s, a = 0.1, p = 0.4;
3126                 if ( k === 0 ) return 0;
3127                 if ( k === 1 ) return 1;
3128                 if ( !a || a < 1 ) { a = 1; s = p / 4; }
3129                 else s = p * Math.asin( 1 / a ) / ( 2 * Math.PI );
3130                 if ( ( k *= 2 ) < 1 ) return - 0.5 * ( a * Math.pow( 2, 10 * ( k -= 1 ) ) * Math.sin( ( k - s ) * ( 2 * Math.PI ) / p ) );
3131                 return a * Math.pow( 2, -10 * ( k -= 1 ) ) * Math.sin( ( k - s ) * ( 2 * Math.PI ) / p ) * 0.5 + 1;
3132     
3133             }
3134     
3135         },
3136     
3137         Back: {
3138     
3139             In: function ( k ) {
3140     
3141                 var s = 1.70158;
3142                 return k * k * ( ( s + 1 ) * k - s );
3143     
3144             },
3145     
3146             Out: function ( k ) {
3147     
3148                 var s = 1.70158;
3149                 return --k * k * ( ( s + 1 ) * k + s ) + 1;
3150     
3151             },
3152     
3153             InOut: function ( k ) {
3154     
3155                 var s = 1.70158 * 1.525;
3156                 if ( ( k *= 2 ) < 1 ) return 0.5 * ( k * k * ( ( s + 1 ) * k - s ) );
3157                 return 0.5 * ( ( k -= 2 ) * k * ( ( s + 1 ) * k + s ) + 2 );
3158     
3159             }
3160     
3161         },
3162     
3163         Bounce: {
3164     
3165             In: function ( k ) {
3166     
3167                 return 1 - Easing.Bounce.Out( 1 - k );
3168     
3169             },
3170     
3171             Out: function ( k ) {
3172     
3173                 if ( k < ( 1 / 2.75 ) ) {
3174     
3175                     return 7.5625 * k * k;
3176     
3177                 } else if ( k < ( 2 / 2.75 ) ) {
3178     
3179                     return 7.5625 * ( k -= ( 1.5 / 2.75 ) ) * k + 0.75;
3180     
3181                 } else if ( k < ( 2.5 / 2.75 ) ) {
3182     
3183                     return 7.5625 * ( k -= ( 2.25 / 2.75 ) ) * k + 0.9375;
3184     
3185                 } else {
3186     
3187                     return 7.5625 * ( k -= ( 2.625 / 2.75 ) ) * k + 0.984375;
3188     
3189                 }
3190     
3191             },
3192     
3193             InOut: function ( k ) {
3194     
3195                 if ( k < 0.5 ) return Easing.Bounce.In( k * 2 ) * 0.5;
3196                 return Easing.Bounce.Out( k * 2 - 1 ) * 0.5 + 0.5;
3197     
3198             }
3199     
3200         }
3201     
3202     }
3203     
3204     var Interpolation = {
3205     
3206         Linear: function ( v, k ) {
3207     
3208             var m = v.length - 1, f = m * k, i = Math.floor( f ), fn = Interpolation.Utils.Linear;
3209     
3210             if ( k < 0 ) return fn( v[ 0 ], v[ 1 ], f );
3211             if ( k > 1 ) return fn( v[ m ], v[ m - 1 ], m - f );
3212     
3213             return fn( v[ i ], v[ i + 1 > m ? m : i + 1 ], f - i );
3214     
3215         },
3216     
3217         Bezier: function ( v, k ) {
3218     
3219             var b = 0, n = v.length - 1, pw = Math.pow, bn = Interpolation.Utils.Bernstein, i;
3220     
3221             for ( i = 0; i <= n; i++ ) {
3222                 b += pw( 1 - k, n - i ) * pw( k, i ) * v[ i ] * bn( n, i );
3223             }
3224     
3225             return b;
3226     
3227         },
3228     
3229         CatmullRom: function ( v, k ) {
3230     
3231             var m = v.length - 1, f = m * k, i = Math.floor( f ), fn = Interpolation.Utils.CatmullRom;
3232     
3233             if ( v[ 0 ] === v[ m ] ) {
3234     
3235                 if ( k < 0 ) i = Math.floor( f = m * ( 1 + k ) );
3236     
3237                 return fn( v[ ( i - 1 + m ) % m ], v[ i ], v[ ( i + 1 ) % m ], v[ ( i + 2 ) % m ], f - i );
3238     
3239             } else {
3240     
3241                 if ( k < 0 ) return v[ 0 ] - ( fn( v[ 0 ], v[ 0 ], v[ 1 ], v[ 1 ], -f ) - v[ 0 ] );
3242                 if ( k > 1 ) return v[ m ] - ( fn( v[ m ], v[ m ], v[ m - 1 ], v[ m - 1 ], f - m ) - v[ m ] );
3243     
3244                 return fn( v[ i ? i - 1 : 0 ], v[ i ], v[ m < i + 1 ? m : i + 1 ], v[ m < i + 2 ? m : i + 2 ], f - i );
3245     
3246             }
3247     
3248         },
3249     
3250         Utils: {
3251     
3252             Linear: function ( p0, p1, t ) {
3253     
3254                 return ( p1 - p0 ) * t + p0;
3255     
3256             },
3257     
3258             Bernstein: function ( n , i ) {
3259     
3260                 var fc = Interpolation.Utils.Factorial;
3261                 return fc( n ) / fc( i ) / fc( n - i );
3262     
3263             },
3264     
3265             Factorial: ( function () {
3266     
3267                 var a = [ 1 ];
3268     
3269                 return function ( n ) {
3270     
3271                     var s = 1, i;
3272                     if ( a[ n ] ) return a[ n ];
3273                     for ( i = n; i > 1; i-- ) s *= i;
3274                     return a[ n ] = s;
3275     
3276                 }
3277     
3278             } )(),
3279     
3280             CatmullRom: function ( p0, p1, p2, p3, t ) {
3281     
3282                 var v0 = ( p2 - p0 ) * 0.5, v1 = ( p3 - p1 ) * 0.5, t2 = t * t, t3 = t * t2;
3283                 return ( 2 * p1 - 2 * p2 + v0 + v1 ) * t3 + ( - 3 * p1 + 3 * p2 - 2 * v0 - v1 ) * t2 + v0 * t + p1;
3284     
3285             }
3286     
3287         }
3288     
3289     }
3290     
3291     //////////////////////////////////////////////////////////////////////
3292     ////////// RiText   
3293     ////////////////////////////////////////////////////////////////////// 
3294     
3295     /**
3296      * @name RiText
3297      * 
3298      * @class RiTa's text display object. Wraps an instance of RiString to provide utility
3299      * methods for typography, text effects, animation, etc. Uses either the native canvas 
3300      * renderer or the Processing renderer (when included)
3301      * 
3302      * @property {number} x The x position
3303      * @property {number} y The y position
3304      */    
3305     RiText = makeClass();
3306         
3307     //////////////////////////////////////////////////////////////////////
3308     //////// RiText statics
3309     ////////////////////////////////////////////////////////////////////// 
3310     
3311     /**
3312      * Static container for properties related to the update/render loop
3313      */
3314     RiText._animator = {
3315         loopId : -1,
3316         actualFPS : 0,
3317         targetFPS : 60,
3318         isLooping : false,
3319         frameCount : 0,
3320         loopStarted : false,
3321         framesSinceLastFPS : 0,
3322         callbackDisabled : false,
3323         timeSinceLastFPS : Date.now()
3324     }
3325 
3326     /**
3327      * Starts a timer that calls 'onRiTaEvent' or the specified callback every 'period'
3328      * seconds
3329      * 
3330      * @param {number} period
3331      * @param {function} callback called every 'period' seconds
3332      * @returns {number} the unique id for the timer
3333      */
3334     RiText.timer = function(period, callback) {
3335 
3336         return RiTa.timer.apply(this,arguments);
3337     }, 
3338     
3339     /**
3340      * Returns the number of frames since the start of the sketch 
3341      * @returns {number} the number of frames
3342      */
3343     RiText.frameCount = function() {
3344         return RiText._animator.frameCount;
3345     }
3346     
3347     /**
3348      * Immediately stops the current animation loop and clears 
3349      */
3350     RiText.noLoop = function() {
3351         var an = RiText._animator;
3352         an.isLooping = false;
3353         an.loopStarted = false;
3354         an.clearInterval(loopId);
3355     }
3356         
3357     /**
3358      * Starts an animation loop that calls the specified callback (usually 'draw') 
3359      * at the specified fps  
3360      * 
3361      * @param {function} callback the animation callback (optional, default=60)
3362      * @param {number} fps the target framesPerSecond (optional, default='draw')
3363      * <pre>
3364      * Examples:
3365      *  RiText.loop();
3366      *  RiText.loop('draw');
3367      *  RiText.loop(30);
3368      *  RiText.loop(draw, 10);
3369      * </pre>
3370      */
3371     RiText.loop = function(callbackFun, fps) {
3372         
3373         var a = arguments, g = RiText.renderer,  an = RiText._animator, callback = window['draw'];
3374         
3375         if (g._type() === 'Processing') return; // let P5 do its own loop?
3376   
3377         if (an.loopStarted) return;
3378         
3379         switch (a.length) {
3380             
3381             case 1:
3382                 
3383                 if (a[0]) {
3384                     var type = Type.get(a[0]);
3385                     if (type == F) {
3386                         callback = a[0];
3387                     }
3388                     else if (type == N) {
3389                         an.targetFPS = a[0];
3390                     }
3391                 }
3392                 break;
3393                 
3394             case 2:
3395                 
3396                 if (a[0]) {
3397                     
3398                     var type = Type.get(a[0]);
3399                     if (type == F) {
3400                         callback = a[0];
3401                     }
3402                     type = Type.get(a[1])
3403                     if (type == N) {
3404                         an.targetFPS = a[1];
3405                     }
3406                 }
3407                 break;
3408         }
3409 
3410         an.timeSinceLastFPS = Date.now(), an.framesSinceLastFPS = 0, mps =  1E3 / an.targetFPS;
3411         
3412         if (callback && !an.callbackDisabled) {
3413             
3414             an.loopId = window.setInterval(function() {
3415                 
3416               try {
3417                 
3418                  callback();
3419                  
3420                  var sec = (Date.now() - an.timeSinceLastFPS) / 1E3;
3421                  var fps = ++an.framesSinceLastFPS / sec;
3422                  
3423                  if (sec > 0.5) {
3424                      an.timeSinceLastFPS = Date.now();
3425                      an.framesSinceLastFPS = 0;
3426                      an.actualFPS = fps;
3427                  }
3428                  an.frameCount++;
3429                 
3430               } catch(ex) {
3431                   
3432                 if (!an.callbackDisabled) {
3433                     console.warn("Unable to invoke callback: "+callback);
3434                     an.callbackDisabled = true;
3435                 }
3436                 window.clearInterval(an.loopId);
3437                 console.trace(this);
3438                 throw ex;
3439               }
3440             }, mps);
3441             
3442             an.isLooping = true;
3443             an.loopStarted = true;
3444         }
3445 
3446     }
3447     
3448     /**
3449      * Convenience method to get the height of the current drawing surface
3450      * @returns {number} width
3451      */
3452     RiText.width = function() { return RiText.renderer._width(); }
3453      
3454 
3455     /**
3456      * Convenience method to get the height of the current drawing surface
3457      * @returns {number} height
3458      */
3459     RiText.height = function() { return RiText.renderer._height(); }
3460  
3461     /**
3462      * Convenience method to draw a crisp line on the drawing surface
3463      * @param {number} x1
3464      * @param {number} y1
3465      * @param {number} x2
3466      * @param {number} y2
3467      * @param {number} lineWidth (optional: default=1)
3468      */ 
3469     RiText.line = function(x1, y1, x2, y2, lineWidth) {
3470 
3471         var g = RiText.renderer;
3472         g._pushState();
3473         g._line(x1, y1, x2, y2, lineWidth || 1);
3474         g._popState();
3475     }
3476       
3477     /**
3478      * Convenience method to set the size of the drawing surface in the current 
3479      * renderer context 
3480      * @param {number} w width
3481      * @param {number} h height
3482      */
3483     RiText.size = function(w,h/*renderer*/) {
3484         
3485         RiText.renderer._size(w,h/*renderer*/);
3486     }
3487     
3488     /**
3489      * Returns the current graphics context, either a canvas 2d'-context or ProcessingJS instance 
3490      * @returns {object}
3491      */
3492     RiText.graphics = function() {
3493         
3494         return RiText.renderer._getGraphics();
3495     }
3496     
3497     /**
3498      * Returns a random color in which the 3 values for rgb (or rgba if 'includeAlpha' is true), 
3499      * are between min and max 
3500      * 
3501      * @param {number} min value
3502      * @param {number} max value
3503      * @param {boolean} includeAlpha true if includes alpha
3504      * @returns {array} numbers - [r,g,b] or [r,g,b,a]
3505      */
3506     RiText.randomColor = function(min,max,includeAlpha) {
3507         
3508         min = min || 0, max = max || 256;
3509         var col = [RiText.random(min,max),RiText.random(min,max),RiText.random(min,max)];
3510         if (includeAlpha) col.push(RiText.random(min,max));
3511         return col;
3512     }
3513     
3514     /**
3515      * Returns a random number between 'min' (default 0) and 'max
3516      * @returns {number}
3517      */
3518     RiText.random = function() {
3519         
3520         return RiTa.random.apply(this,arguments);
3521     }
3522     
3523     /**
3524      * Convenience method to get the distance between 2 points
3525      * @param {number} x1
3526      * @param {number} y1
3527      * @param {number} x2
3528      * @param {number} y2
3529      * 
3530      * @returns {number}
3531      */
3532     RiText.distance = function() {
3533         
3534         return RiTa.distance.apply(this,arguments);
3535     }
3536     
3537     /**
3538      * Convenience method to fill drawing surface background with specified color
3539      * @param {number} r
3540      * @param {number} g
3541      * @param {number} b
3542      * @param {number} a
3543      */
3544     RiText.background = function(r,g,b,a) {
3545         
3546         var br, bg, bb, ba=255, r = (typeof r == N) ? r : 255;
3547         
3548         if (arguments.length >= 3) {
3549             br = r;
3550             bg = g;
3551             bb = b;
3552         }
3553         if (arguments.length == 4) {
3554                 ba = a;
3555         }
3556         if (arguments.length <= 2) {
3557                 br = r;
3558                 bg = r;
3559                 bb = r;
3560         }
3561         if (arguments.length == 2) {
3562                 ba = g;
3563         }
3564  
3565         RiText.renderer._background(br,bg,bb,ba);
3566     }
3567     
3568     
3569     /**
3570      * Returns the mouse position from a mouse event
3571      * in a cross-browser -ompatible fashion
3572      * @param {MouseEvent} e mouseEvent
3573      * @returns {object} mouse position with x,y properties
3574      */
3575     RiText.mouse = function(e) {
3576         
3577         var posX = -1,posY = -1;
3578         
3579         if (!e) var e = window.event;
3580         if (!e && !RiText.mouse.printedWarning) { 
3581             console.warn("Unable to determine mouse position without an event!");
3582             RiText.mouse.printedWarning = true;
3583         }        
3584         
3585         if (e.pageX) {
3586             posX = e.pageX;
3587         }
3588         else if (e.clientX)    {
3589             posX = e.clientX + document.body.scrollLeft
3590                 + document.documentElement.scrollLeft;
3591         }
3592 
3593         if (e.pageY) {
3594             posY = e.pageY;
3595         }
3596         else if (e.clientY)    {
3597             posY = e.clientY + document.body.scrollTop
3598                 + document.documentElement.scrollTop;
3599         }
3600  
3601  
3602         return {x:posX,y:posY};
3603     }
3604 
3605 //    /**
3606 //     * Returns the mouseY position from a mouse event
3607 //     * in a cross-browser compatible fashion
3608 //     * @param mouseEvent
3609 //     */
3610 //    RiText.mouseY = function(e) {
3611 //
3612 //        return posY;
3613 //    }
3614 //    
3615     /**
3616      * Returns all RiTexts that contain the point x,y or null if none do.
3617      * <p>
3618      * Note: this will return an array even if only one item is picked, therefore,
3619      * you should generally use it as follows:
3620      * 
3621      * @example
3622      *   var rts = RiText.getPicked(mx, my);
3623      *   if (rts.length) {
3624      *      rts[0].doSomething();
3625      *   }
3626      *
3627      *
3628      * @param {number} x
3629      * @param {number} y
3630      * 
3631      * @returns {array} RiText[] 1 or more RiTexts containing
3632      * the point, or null if none do.
3633      */
3634     RiText.picked = function(x, y)
3635     {
3636       var hits = [];
3637       for (var i = 0; i < RiText.instances.length; i++)
3638       {
3639         var rt = RiText.instances[i];
3640         rt.contains(x, y) && hits.push(rt);
3641       }
3642       return hits;
3643     }
3644     
3645     RiText.dispose = function(toDelete) {
3646         
3647        Type.is(toDelete,A) && _disposeArray(toDelete);
3648        Type.is(toDelete,O) && _disposeOne(toDelete);
3649     }
3650     
3651     RiText.disposeAll = function() {
3652         
3653         for ( var i = 0; i < RiText.instances.length; i++) {
3654 
3655             if (RiText.instances[i]) {
3656                 
3657                 delete(RiText.instances[i]._rs);
3658                 delete(RiText.instances[i]);
3659             }
3660         }
3661         RiText.instances = [];
3662     }
3663     
3664     // TODO: if txt is an array, maintain line breaks... ? 
3665     // TODO: other alignments?
3666     RiText.createLines = function(txt, x, y, maxW, maxH, theFont) { 
3667    
3668         // remove line breaks
3669         txt = replaceAll(txt, "[\r\n]", SP);
3670 
3671         //  adds spaces around html tokens
3672         txt = replaceAll(txt," ?(<[^>]+>) ?", " $1 ");
3673 
3674         // split into array of words
3675         var tmp = txt.split(SP), words = [];
3676         for ( var i = tmp.length - 1; i >= 0; i--)
3677             words.push(tmp[i]);
3678 
3679         if (!words.length) return [];
3680         
3681         var g = RiText.renderer;
3682         var fn = RiText.createLines;
3683         
3684         // helpers functions //////////////////////////////////////// ?
3685         
3686         fn.checkLineHeight = fn.checkLineHeight || function(currentH, lineH, maxH) {
3687             
3688             return currentH + lineH <= maxH;
3689         };
3690         
3691         fn.addLine = fn.addLine || function(arr, s) {
3692             if (s && s.length) {
3693                 // strip trailing spaces (regex?)
3694                 while (s.length > 0 && endsWith(s, " "))
3695                     s = s.substring(0, s.length - 1);
3696                 arr.push(s); 
3697             }
3698         };
3699         
3700         // the guts ////////////////////////////////////////////////
3701 
3702         theFont = theFont || _getDefaultFont();
3703         
3704         var tmp = new RiText('_',0,0,theFont), textH = tmp.textHeight();
3705         RiText.dispose(tmp);
3706 
3707         var currentH = 0, currentW = 0, newParagraph = false, forceBreak = false, strLines = [], 
3708             sb = RiText.defaults.indentFirstParagraph ? RiText.defaults.paragraphIndent : E;
3709         
3710         while (words.length > 0) {
3711 
3712             var next = words.pop();
3713             
3714             if (next.length == 0) continue;
3715 
3716             if (startsWith(next, '<') && endsWith(next, ">")) {
3717          
3718                 if (next === RiText.NON_BREAKING_SPACE || next === "</sp>") {
3719                     
3720                     sb += SP;
3721                 }
3722                 else if (next === RiText.PARAGRAPH || next === "</p>") {
3723                     
3724                     if (sb.length > 0) {// case: paragraph break
3725                         
3726                         newParagraph = true;
3727                     }
3728                     else if (RiText.indentFirstParagraph) {
3729                     
3730                         sb += RiText.defaults.paragraphIndent;
3731                     }
3732                 }
3733                 else if (endsWith(next, RiText.LINE_BREAK) || next === "</br>") {
3734                     
3735                     forceBreak = true;
3736                 }
3737                 continue;
3738             }
3739 
3740             currentW = g._textWidth(theFont, sb + next);
3741 
3742             // check line-length & add a word
3743             if (!newParagraph && !forceBreak && currentW < maxW) {
3744                 
3745                 sb += next + " "; 
3746             }
3747             else // new paragraph or line-break
3748             {
3749                 // check vertical space, add line & next word
3750                 if (fn.checkLineHeight(currentH, textH, maxH)) {
3751                     
3752                     fn.addLine(strLines, sb);
3753                     sb = E;
3754 
3755                     if (newParagraph) { // do indent
3756 
3757                         sb += RiText.defaults.paragraphIndent;
3758                         if (RiText.defaults.paragraphLeading > 0) {
3759                             sb += '|'; // filthy
3760                         }
3761                     }
3762                     newParagraph = false;
3763                     forceBreak = false;
3764                     sb += next + SP;//addWord(sb, next);
3765 
3766                     currentH += textH; // DCH: changed(port-to-js), 3.3.12 
3767                     // currentH += lineHeight; 
3768                 }
3769                 else {
3770                     
3771                     if (next != null) words.push(next);
3772                     break;
3773                 }
3774             }
3775         }
3776 
3777         // check if leftover words can make a new line
3778         if (fn.checkLineHeight(currentH, textH, maxH)) {
3779             
3780             fn.addLine(strLines, sb);
3781             sb = E;
3782         }
3783         else {
3784             var tmp = sb.split(SP);
3785             for ( var i = tmp.length - 1; i >= 0; i--) {
3786                 words.push(tmp[i]);
3787             }
3788             //fn.pushLine(words, sb.split(SP));
3789         }
3790 
3791         if (!strLines.length) err('Unexpected fail in createLines: no lines');
3792         
3793         // lay out the lines
3794         var rts = RiText._createLinesByCharCountFromArray(strLines, x, y+textH, theFont);
3795 
3796         // set the paragraph spacing
3797         if (RiText.defaults.paragraphLeading > 0)  {
3798             
3799           var lead = 0;
3800           for (var i = 0; i < rts.length; i++) {
3801               
3802             var str = rts[i].text();
3803             var idx = str.indexOf('|');
3804             if (idx > -1) {
3805               lead += RiText.defaults.paragraphLeading;
3806               rts[i].removeCharAt(idx);
3807             }
3808             rts[i].y += lead;
3809           }
3810         }
3811         
3812         // check all the lines are still in the rect
3813         var toKill = [];
3814         var check = rts[rts.length - 1];   
3815         for (var z = 1; check.y > y + maxH; z++) {
3816             
3817             toKill.push(check);
3818             var idx = rts.length - 1 - z;
3819             if (idx < 0) break;
3820             check = rts[idx];
3821         }
3822         
3823         // remove the dead ones
3824         for (var z = 0; z < toKill.length; z++) {
3825             
3826             removeFromArray(rts, toKill[z]);
3827         }
3828         
3829         _disposeArray(toKill);
3830 
3831 
3832         return rts;
3833     }
3834 
3835     // TODO: add example
3836     /**
3837      * Sets/gets the default font size for all RiTexts
3838      * @param {object} motionType
3839      * @returns {object} the current default motionType
3840      */
3841     RiText.defaultMotionType = function(motionType) {
3842 
3843         if (arguments.length==1) 
3844             RiText.defaults.motionType = motionType;
3845         return RiText.defaults.motionType;
3846     }
3847     
3848     // TODO: add example
3849     /**
3850      * Sets/gets the default alignment for all RiTexts
3851      * @param {number} align (optional, for sets only)
3852      * @returns {number} the current default alignment
3853      */
3854     RiText.defaultAlignment = function(align) {
3855 
3856         if (arguments.length==1)
3857             RiText.defaults.alignment = align;
3858         return RiText.defaults.alignment;
3859     }
3860     
3861     /**
3862      * Sets/gets the default font size for all RiTexts
3863      * @param {number} size (optional, for sets only)
3864      * @returns {number} the current default font size
3865      */
3866     RiText.defaultFontSize = function(size) {
3867 
3868         if (arguments.length==1) 
3869             RiText.defaults.fontSize = size;
3870         return RiText.defaults.fontSize;
3871     }
3872 
3873     /**
3874      * Sets/gets the default bounding box visibility
3875      * @param {boolean} size (optional, for sets only)
3876      * @returns {boolean} the current default bounding box visibility
3877      */
3878     RiText.showBoundingBoxes = function(value) {
3879         
3880         if (arguments.length==1) 
3881             RiText.defaults.boundingBoxVisible = value;
3882         return RiText.defaults.boundingBoxVisible;
3883     }
3884 
3885     /**
3886      * Sets/gets the default font for all RiTexts
3887      * @param {object} font (optional, for sets only)
3888      * @returns {object} the current default font
3889      */
3890     RiText.defaultFont = function(font) {
3891         
3892         var a = arguments;
3893         if (a.length == 1 && typeof a[0] == O) {
3894             RiText.defaults.font = a[0];
3895         }
3896         else if (a.length > 1) {
3897             RiText.defaults.font = RiText.renderer._createFont.apply(RiText.renderer,a);
3898         }
3899         return RiText.defaults.font;
3900     }
3901     
3902     RiText.createFont = function(fontName, fontSize, leading) {
3903         
3904         if (!fontName) err('RiText.createFont requires fontName');
3905         
3906         fontSize = fontSize || RiText.defaults.fontSize;
3907         
3908         return RiText.renderer._createFont(fontName, fontSize, leading);
3909     }
3910 
3911     RiText.createWords = function(txt, x, y, w, h, fontObj) {
3912 
3913         return _createRiTexts(txt, x, y, w, h, fontObj, RiText.prototype.splitWords);
3914     }
3915 
3916     RiText.createLetters = function(txt, x, y, w, h, fontObj) {
3917 
3918         return _createRiTexts(txt, x, y, w, h, fontObj, RiText.prototype.splitLetters);
3919     }
3920     
3921     // private statics ///////////////////////////////////////////////////////////////
3922 
3923     // make a sub-case of _createLinesByCharCount(() ?
3924     RiText._createLinesByCharCountFromArray = function(txtArr, startX, startY, fontObj) {
3925 
3926         //log('createLinesByCharCountFromArray('+txtArr.length+','+startX+','+startY+','+maxCharsPerLine+','+fontObj+')');
3927 
3928         fontObj = fontObj || _getDefaultFont();
3929 
3930         var rts = [];
3931         for ( var i = 0; i < txtArr.length; i++) {
3932             //log(i+")"+txtArr[i]);
3933             rts.push(RiText(txtArr[i], startX, startY, fontObj));
3934         }
3935 
3936         if (rts.length < 1) return [];
3937 
3938         return _handleLeading(fontObj, rts, startY);
3939     }
3940     
3941     // TODO: if txt is an array, maintain line breaks... ? Is this even being used??
3942     // TODO: should this be private -- need a way to respect line-breaks in createWords, createLetters, etc. - add test
3943     RiText._createLinesByCharCount = function(txt, startX, startY, maxCharsPerLine, fontObj) {
3944 
3945         //log("RiText._createLinesByCharCount(("+txt+", "+startX+","+startY+", "+maxCharsPerLine+", "+fontObj+")");
3946 
3947         if (!maxCharsPerLine || maxCharsPerLine<0) maxCharsPerLine = Number.MAX_VALUE;
3948 
3949         if (txt == null || txt.length == 0) return new Array();
3950 
3951         if (txt.length < maxCharsPerLine) return [ new RiText(txt, startX, startY) ];
3952 
3953         // remove any line breaks from the original
3954         txt = replaceAll(txt,"\n", " ");
3955 
3956         var texts = [];
3957         while (txt.length > maxCharsPerLine) {
3958             var toAdd = txt.substring(0, maxCharsPerLine);
3959             txt = txt.substring(maxCharsPerLine, txt.length);
3960 
3961             var idx = toAdd.lastIndexOf(" ");
3962             var end = "";
3963             if (idx >= 0) {
3964                 end = toAdd.substring(idx, toAdd.length);
3965                 if (maxCharsPerLine < Number.MAX_VALUE) end = end.trim();
3966                 toAdd = toAdd.substring(0, idx);
3967             }
3968             texts.push(new RiText(toAdd.trim(), startX, startY));
3969             txt = end + txt;
3970         }
3971 
3972         if (txt.length > 0) {
3973             if (maxCharsPerLine < Number.MAX_VALUE) txt = txt.trim();
3974             texts.push(new RiText(txt, startX, startY));
3975         }
3976 
3977         return _handleLeading(fontObj, texts, startY);
3978     }
3979     
3980     _createRiTexts = function(txt, x, y, w, h, fontObj, splitFun) // private 
3981     {
3982         if (!txt || !txt.length) return [];
3983         fontObj = fontObj || _getDefaultFont();
3984 
3985         var rlines = RiText.createLines(txt, x, y, w, h, fontObj);
3986         if (!rlines) return [];
3987 
3988         var result = [];
3989         for ( var i = 0; i < rlines.length; i++) {
3990             
3991             var rts = splitFun.call(rlines[i]);
3992             for ( var j = 0; j < rts.length; j++)
3993                 result.push(rts[j].font(fontObj)); // add the words
3994             
3995             RiText.dispose(rlines[i]);
3996         }
3997 
3998         return result;
3999     }
4000     
4001 
4002     // Returns the pixel x-offset for the word at 'wordIdx' (make private in RiText)
4003     _wordOffsetFor = function(rt, words, wordIdx) { 
4004 
4005         //log("wordOffset("+words+","+wordIdx+")");
4006 
4007         if (wordIdx < 0 || wordIdx >= words.length)
4008             throw new Error("Bad wordIdx=" + wordIdx + " for " + words);
4009         
4010         rt.g._pushState();
4011 
4012         var xPos = rt.x;
4013 
4014         if (wordIdx > 0) {
4015             
4016             var pre = words.slice(0, wordIdx);
4017             var preStr = '';
4018             for ( var i = 0; i < pre.length; i++) {
4019                 preStr += pre[i] + ' ';
4020             }
4021 
4022             var tw = rt.g._textWidth(rt._font, preStr);
4023 
4024             //log("x="+xPos+" pre='"+preStr+"' tw=" + tw); 
4025 
4026             switch (rt._alignment) {
4027                 case RiText.LEFT:
4028                     xPos = rt.x + tw;
4029                     break;
4030                 case RiText.RIGHT:
4031                     xPos = rt.x - tw;
4032                     break;
4033                 case RiText.CENTER:
4034                     console.warn("TODO: test center-align here");
4035                     xPos = rt.x; // ?
4036                     break;
4037             }
4038         }
4039         rt.g._popState();
4040 
4041         return xPos;
4042     }
4043     
4044     _handleLeading = function(fontObj, rts, startY)  {
4045         
4046       if (!rts || !rts.length) return;
4047 
4048       fontObj = fontObj || _getDefaultFont();
4049       
4050       var nextHeight = startY;
4051       rts[0].font(fontObj);
4052       for ( var i = 0; i < rts.length; i++) {
4053           
4054         if (fontObj) rts[i].font(fontObj); // set the font
4055         rts[i].y = nextHeight; // adjust y-pos
4056         nextHeight += fontObj.leading;
4057       }
4058       
4059       return rts;
4060     }
4061     
4062     _disposeOne = function(toDelete) {
4063         
4064         removeFromArray(RiText.instances, toDelete);
4065         
4066         if (toDelete) {
4067             delete(toDelete._rs);
4068             delete(toDelete);
4069         }
4070 
4071     }  
4072 
4073     _disposeArray = function(toDelete) {
4074         
4075         for ( var i = 0; i < toDelete.length; i++) {
4076             
4077             _disposeOne(toDelete[i]);
4078         }
4079     }
4080     
4081     // TODO: test this font default across all platforms and browsers
4082     
4083     _getDefaultFont = function() { // make private??
4084         
4085         //log("_getDefaultFont: "+RiText.defaults.fontFamily+","+RiText.defaults.font.size);
4086         
4087         RiText.defaults.font = RiText.defaults.font || 
4088             RiText.renderer._createFont(RiText.defaults.fontFamily, 
4089                 RiText.defaults.fontSize, RiText.defaults.fontLeading);
4090         
4091         return RiText.defaults.font;
4092     }
4093     
4094     /**
4095      * A convenience method to call a member function on each RiText in the array,
4096      * or all existing RiText objects (with no argument)
4097      * @param {array} theFunction defaults to all riText if an array is not supplied (optional, default=all)
4098      */
4099     RiText.foreach = function(theFunction) {
4100         
4101         if (arguments.length == 1 && Type.is(array,A)) { 
4102             for ( var i = 0; i < array.length; i++)
4103                 array[i] && array[i].theFunction();
4104         }
4105         else {
4106             for ( var i = 0; i < RiText.instances.length; i++)
4107                 RiText.instances[i] && RiText.instances[i].theFunction();
4108         }
4109         
4110     }
4111     
4112     /**
4113      * A convenience method to draw all existing RiText objects (with no argument)
4114      * or an array of RiText objects (if supplied as an argument)
4115      * @param {array} array draws only the array if supplied (optional)
4116      */
4117     RiText.drawAll = function(array) {
4118         
4119         if (arguments.length == 1 && Type.is(array,A)) { 
4120             for ( var i = 0; i < array.length; i++)
4121                 array[i] && array[i].draw();
4122         }
4123         else {
4124             for ( var i = 0; i < RiText.instances.length; i++)
4125                 RiText.instances[i] && RiText.instances[i].draw();
4126         }
4127         
4128     }
4129     
4130     RiText.defaultColor = function(r, g, b, a) {
4131  
4132         if (arguments.length) { 
4133             RiText.defaults.color = parseColor.apply(this,arguments);
4134         }
4135         return RiText.defaults.color;
4136     }
4137 
4138     // PUBLIC statics (TODO: clean up) ///////////////////////////////////////////
4139    
4140     RiText.NON_BREAKING_SPACE = "<sp>";
4141     RiText.LINE_BREAK = "<br>";
4142     RiText.PARAGRAPH = "<p>";
4143     
4144     RiText.instances = [];
4145 
4146     RiText.LEFT = 37; RiText.UP = 38; RiText.RIGHT = 39; RiText.DOWN = 40,  RiText.CENTER = 3;
4147 
4148     // ==== RiTaEvent ============
4149 
4150     RiText.UNKNOWN = -1; RiText.TEXT_ENTERED = 1; RiText.BEHAVIOR_COMPLETED = 2; RiText.TIMER_TICK = 3;
4151 
4152     // ==== TextBehavior ============
4153 
4154     RiText.MOVE_TO = 1; RiText.FADE_COLOR = 2; RiText.FADE_IN = 3; RiText.FADE_OUT = 4; RiText.FADE_TO_TEXT = 5; 
4155     RiText.TIMER = 6; RiText.SCALE_TO = 7; RiText.LERP = 8;
4156 
4157     // ==== Animation types ============
4158 
4159     RiText.LINEAR = Easing.Linear.None; 
4160     
4161     RiText.EASE_IN =  Easing.Exponential.In;
4162     RiText.EASE_OUT =  Easing.Exponential.Out; 
4163     RiText.EASE_IN_OUT =  Easing.Exponential.InOut;
4164     
4165     RiText.EASE_IN_EXPO =  Easing.Exponential.In;
4166     RiText.EASE_OUT_EXPO =  Easing.Exponential.Out;
4167     RiText.EASE_IN_OUT_EXPO =  Easing.Exponential.InOut;
4168     
4169     RiText.EASE_IN_SINE = Easing.Sinusoidal.In;
4170     RiText.EASE_OUT_SINE = Easing.Sinusoidal.Out;
4171     RiText.EASE_IN_OUT_SINE = Easing.Sinusoidal.InOut;
4172     
4173     RiText.EASE_IN_CUBIC =  Easing.Cubic.In;
4174     RiText.EASE_OUT_CUBIC = Easing.Cubic.Out;
4175     RiText.EASE_IN_OUT_CUBIC =  Easing.Cubic.InOut;
4176     
4177     RiText.EASE_IN_QUARTIC =  Easing.Quartic.In;
4178     RiText.EASE_OUT_QUARTIC =  Easing.Quartic.Out;
4179     RiText.EASE_IN_OUT_QUARTIC =  Easing.Quartic.InOut;
4180     
4181     RiText.EASE_IN_QUINTIC = Easing.Quintic.In;
4182     RiText.EASE_OUT_QUINTIC = Easing.Circular.Out;
4183     RiText.EASE_IN_OUT_QUINTIC = Easing.Circular.InOut;
4184     
4185     RiText.BACK_IN = Easing.Back.In;
4186     RiText.BACK_OUT = Easing.Back.Out;
4187     RiText.BACK_IN_OUT = Easing.Back.InOut;
4188     
4189     RiText.BOUNCE_IN = Easing.Bounce.In;
4190     RiText.BOUNCE_OUT = Easing.Bounce.Out;
4191     RiText.BOUNCE_IN_OUT = Easing.Bounce.InOut;
4192     
4193     RiText.CIRCULAR_IN = Easing.Circular.In;
4194     RiText.CIRCULAR_OUT = Easing.Circular.Out;
4195     RiText.CIRCULAR_IN_OUT = Easing.Circular.InOut;
4196     
4197     RiText.ELASTIC_IN = Easing.Elastic.In;
4198     RiText.ELASTIC_OUT = Easing.Elastic.Out;
4199     RiText.ELASTIC_IN_OUT = Easing.Elastic.InOut;
4200     
4201     /**
4202      * A set of static defaults to be shared by RiText objects
4203      * Can be modified directly or through API methods.
4204      * 
4205      * @example 
4206      *  RiText.defaultAlignment(RiText.RIGHT);
4207      *  RiText.defaultFontSize(20);
4208      * 
4209      * @example 
4210      *  RiText.defaults.alignment = RiText.RIGHT;
4211      *  RiText.defaults.fontSize = 20;
4212 
4213      * @property {object} defaults
4214      */
4215     RiText.defaults = { 
4216         
4217         color : { r : 0, g : 0, b : 0, a : 255 }, scaleX:1, scaleY:1, scaleZ:1,
4218         alignment : RiText.LEFT, motionType : RiText.LINEAR, rotateZ:0, font:null,
4219         paragraphLeading :  0, paragraphIndent: '    ', indentFirstParagraph: false,
4220         fontFamily: 'Times New Roman', fontSize: 14, fontLeading : 16, leadingFactor : 1.1,
4221         boundingBoxStroke : null, boundingBoxFill: null, boundingBoxVisible : false
4222     }
4223 
4224     RiText.prototype = {
4225 
4226         /**
4227          * @private
4228          * @param text
4229          * @param x
4230          * @param y
4231          * @param font
4232          * @returns {RiText}
4233          */
4234         initialize : function(text, x, y, font) { 
4235             
4236             if (!RiText.renderer) 
4237                 err("No graphics context, RiText unavailable");
4238 
4239             if (arguments.length) {
4240                 
4241                 Type.is(text, O) && typeof text.text == F && (text = text.text());
4242             }
4243             else {
4244                 
4245                 text = E;
4246             }
4247             
4248             Type.ok(text, S);
4249             
4250             this._color = { 
4251                 r : RiText.defaults.color.r, 
4252                 g : RiText.defaults.color.g, 
4253                 b : RiText.defaults.color.b, 
4254                 a : RiText.defaults.color.a 
4255             };
4256             
4257             var bbs = RiText.defaults.boundingBoxStroke;
4258             this._boundingBoxStroke = { 
4259                 r : (bbs && bbs.r) || this._color.r, 
4260                 g : (bbs && bbs.g) || this._color.g, 
4261                 b : (bbs && bbs.b) || this._color.b, 
4262                 a : (bbs && bbs.a) || this._color.a
4263             };
4264             
4265             var bbf = RiText.defaults.boundingBoxFill;
4266             this._boundingBoxFill = { 
4267                 r : (bbf && bbf.r) || this._color.r, 
4268                 g : (bbf && bbf.g) || this._color.g, 
4269                 b : (bbf && bbf.b) || this._color.b, 
4270                 a : (bbf && bbf.a) || 0
4271             };
4272     
4273             this._boundingBoxVisible = RiText.defaults.boundingBoxVisible;
4274             this._motionType = RiText.defaults.motionType;
4275             
4276             this._alignment = RiText.defaults.alignment;
4277             
4278             this._rotateZ = RiText.defaults.rotateZ;
4279             this._scaleX = RiText.defaults.scaleX;
4280             this._scaleY = RiText.defaults.scaleY;
4281             this._scaleZ = 1;
4282      
4283             this._behaviors = [];
4284             this.font(font);
4285             this.text(text);
4286             
4287             this.g = RiText.renderer;
4288 
4289             //log('RiText) '+this._rs._text +" / "+ this._font.name);
4290 
4291             this.x = arguments.length>1 ? x : this.g._width() / 2 - this.textWidth() / 2.0;
4292             this.y = arguments.length>1 ? y : this.g._height() / 2;
4293     
4294             RiText.instances.push(this);
4295             
4296             return this;
4297         },
4298         
4299         /**
4300          * TODO: NEED DOCS
4301          */
4302         draw : function() {
4303           this._update();
4304           this._render();   
4305           if (this.fadeToTextCopy)
4306               this.fadeToTextCopy.draw();
4307         },
4308         
4309         _update : function() {
4310             
4311             var time = Date.now();
4312             this._updateBehaviors(time);
4313 
4314         },
4315  
4316 //        updateMousePosition : function(curElement, event) {
4317 //            var offset = calculateOffset(window, event);
4318 //            p.mouseX = event.pageX - offset.X;
4319 //            p.mouseY = event.pageY - offset.Y
4320 //        },
4321         
4322         _render : function() {
4323             
4324             var g = this.g;
4325             
4326             if (!g) err('no-renderer');
4327             
4328             g._pushState();
4329             
4330             if (this._rs && this._rs.length) {
4331             
4332                 g._pushState();
4333                 
4334                 // order: scale, center-point-trans, rotate,-center-point-trans,translate?
4335                 
4336                 g._rotate(this._rotateZ);
4337                 g._translate(this.x, this.y);
4338                 g._scale(this._scaleX, this._scaleY, this._scaleZ); 
4339              
4340                 // Set color
4341                 g._fill(this._color.r, this._color.g, this._color.b, this._color.a);
4342       
4343                 // Set font params
4344                 g._textFont(this._font);
4345                 g._textAlign(this._alignment);
4346         
4347                 // Draw text
4348                 g._text(this._rs._text, 0, 0);
4349         
4350                 // And the bounding box
4351                 if (this._boundingBoxVisible) {
4352                     
4353                     g._fill(this._boundingBoxFill.r, this._boundingBoxFill.g, 
4354                         this._boundingBoxFill.b, this._boundingBoxFill.a);
4355                     
4356                     g._stroke(this._boundingBoxStroke.r, this._boundingBoxStroke.g, 
4357                             this._boundingBoxStroke.b, this._boundingBoxStroke.a);
4358                     
4359                     var bb = g._getBoundingBox(this);
4360                     
4361                     // shift bounds based on alignment
4362                     switch(this._alignment) {
4363                         
4364                         case RiText.RIGHT:
4365                             g._translate(-bb.width,0);
4366                             break;
4367                         case RiText.CENTER:
4368                             g._translate(-bb.width/2,0);
4369                             break;
4370                     }
4371                     g._rect(bb.x, bb.y, bb.width, -bb.height);
4372                 }
4373                 
4374                 g._popState();
4375             }
4376     
4377             return this;
4378         },
4379         
4380         ///////////////////////////////// Text Behaviors ////////////////////////////////////
4381     
4382         /**
4383          * Sets/gets the animation <code>motionType</code> for this RiText
4384          * according to one of the following functions: <br>
4385          * <ul>
4386          * <li>RiText.LINEAR
4387          * <li>
4388          * <li>RiText.EASE_IN
4389          * <li>RiText.EASE_OUT
4390          * <li>RiText.EASE_IN_OUT
4391          * <li>
4392          * <li>RiText.EASE_IN_EXPO
4393          * <li>RiText.EASE_OUT_EXPO
4394          * <li>RiText.EASE_IN_OUT_EXPO
4395          * <li>
4396          * <li>RiText.EASE_IN_SINE
4397          * <li>RiText.EASE_OUT_SINE
4398          * <li>RiText.EASE_IN_OUT_SINE
4399          * <li>
4400          * <li>RiText.EASE_IN_CUBIC
4401          * <li>RiText.EASE_OUT_CUBIC
4402          * <li>RiText.EASE_IN_OUT_CUBIC
4403          * <li>
4404          * <li>RiText.EASE_IN_QUARTIC
4405          * <li>RiText.EASE_OUT_QUARTIC
4406          * <li>RiText.EASE_IN_OUT_QUARTIC
4407          * <li>
4408          * <li>RiText.EASE_IN_QUINTIC
4409          * <li>RiText.EASE_OUT_QUINTIC
4410          * <li>RiText.EASE_IN_OUT_QUINTIC
4411          * <li>
4412          * <li>RiText.BACK_IN
4413          * <li>RiText.BACK_OUT
4414          * <li>RiText.BACK_IN_OUT
4415          * <li>
4416          * <li>RiText.BOUNCE_IN
4417          * <li>RiText.BOUNCE_OUT
4418          * <li>RiText.BOUNCE_IN_OUT
4419          * <li>
4420          * <li>RiText.CIRCULAR_IN
4421          * <li>RiText.CIRCULAR_OUT
4422          * <li>RiText.CIRCULAR_IN_OUT
4423          * <li>
4424          * <li>RiText.ELASTIC_IN
4425          * <li>RiText.ELASTIC_OUT
4426          * <li>RiText.ELASTIC_IN_OUT                  
4427          * </ul>
4428          * 
4429          * @param {number} motionType
4430          * @returns {number} motionType
4431          */
4432         motionType : function (motionType) {
4433             if (arguments.length) {
4434                 this._motionType = motionType;
4435                 return this;
4436             }
4437             return this._motionType;
4438         },
4439         
4440         /**
4441          * Fades in current text over <code>seconds</code> starting at
4442          * <code>startTime</code>. Interpolates from the current color {r,g,b,a}
4443          * to {r,g,b,255}.
4444          * 
4445          * @param {number} seconds start Time
4446          *          time in future to start
4447          * @param {number} delay seconds
4448          *          time for fade
4449          * @param {function} callback 
4450          * 
4451          * @returns {number} the unique id for this behavior
4452          */
4453         fadeIn : function(seconds, delay, callback) {
4454             
4455             return this.colorTo([this._color.r, this._color.g, this._color.b, 255],
4456                 seconds, delay, null, 'fadeIn', false);
4457         },
4458     
4459         /**
4460          * Fades out current text over <code>seconds</code> starting at
4461          * <code>startTime</code>. Interpolates from the current color {r,g,b,a} 
4462          * to {r,g,b,0}.
4463          *
4464          * @param {number} seconds
4465          *          time for fade
4466          * @param {number} delay 
4467          *          (optional, default=0),  # of seconds in the future that the fade will start 
4468          *          
4469          * @param {function} callback the callback to be invoked when the behavior has completed (optional: default=onRiTaEvent(e)
4470          * 
4471          * @param {boolean} destroyOnComplete
4472          *          (optional, default=false), destroys the object when the behavior completes
4473          * @returns {number} the unique id for this behavior
4474          */
4475         fadeOut : function(seconds, delay, callback, destroyOnComplete) {
4476     
4477             destroyOnComplete = destroyOnComplete || false;
4478             return this.colorTo([this._color.r, this._color.g, this._color.b, 0], 
4479                 seconds, delay, null, 'fadeOut', destroyOnComplete);
4480         },
4481     
4482         // DH: omitting last 2 args from docs as they are private 
4483         /**
4484          * Transitions to 'color' (rgba) over 'seconds' starting at 'delay' seconds in the future
4485          * 
4486          * @param {array} colors (length 1-4)  r,g,b,a (0-255)
4487          * @param {number} seconds delay 
4488          *          (optional, default=0),  # of seconds in the future that the fade will start 
4489          * @param {number} delay seconds
4490          *          time for fade
4491          * @param {function} callback the callback to be invoked when the behavior has completed
4492          *   (optional: default=onRiTaEvent(e))
4493          * @returns {number} the unique id for this behavior
4494          */
4495         colorTo : function(colors, seconds, delay, callback, type, destroyOnComplete) {             
4496 
4497             if (!Type.is(colors,A))  err('arg#1 to colorTo() must be an array');
4498             
4499             //log(colors[0], g: colors[1], b: colors[2], a: colors[3], seconds);
4500 
4501             delay = delay || 0;
4502             seconds = seconds || 1.0;
4503             type = type || 'colorTo';            
4504             colors = parseColor.apply(this, colors);
4505 
4506             var rt = this, id = setTimeout(function() {
4507 
4508                 new TextBehavior(rt, rt._color)
4509                     .to( { r: colors.r, g: colors.g, b: colors.b, a: colors.a }, seconds*1000)
4510                     .easing(rt._motionType)
4511                     .onUpdate( function () {
4512                        rt._color.r = this.r;
4513                        rt._color.g = this.g;
4514                        rt._color.b = this.b;
4515                        rt._color.a = this.a
4516                     })
4517                     //.delay(delay)
4518                     .onComplete( 
4519                         function () {
4520                             RiTaEvent(rt, type+'Complete')._fire(callback);    
4521                             if (destroyOnComplete) RiText.dispose(rt);
4522                         })
4523                     .start();
4524                 
4525             }, delay*1000);
4526             
4527             return id;
4528         },
4529         
4530         /**
4531          * Scales to 'theScale' over 'seconds' starting at 'delay' seconds in the future
4532          * 
4533          * @param {number} theScale delay 
4534          *          (optional, default=0),  # of seconds in the future that the fade will start       
4535          * @param {number} seconds
4536          *          time for fade
4537          * @param {number} delay seconds
4538          *          time for fade
4539          * @param {function} callback the callback to be invoked when the behavior has completed (optional: default=onRiTaEvent(e)
4540          * 
4541          * @returns {number} the unique id for this behavior
4542          */
4543         scaleTo : function(theScale, seconds, delay, callback) {
4544 
4545             var rt = this;
4546             delay = delay || 0;
4547             seconds = seconds || 1.0;
4548                 
4549             var id = setTimeout(function() {
4550                 
4551                 var tb = new TextBehavior(rt)
4552                     .to( { _scaleX: theScale, _scaleY: theScale }, seconds*1000)
4553                     .easing(rt._motionType)
4554                     .onUpdate( function () {
4555                         rt._scaleX = this._scaleX;
4556                         rt._scaleY = this._scaleY;
4557                     })
4558                     //.delay(delay*1000)
4559                     .onComplete( 
4560                         function () {
4561                            RiTaEvent(rt, 'scaleToComplete')._fire(callback);                    
4562                     });
4563             
4564                 tb.start();
4565                 
4566             }, delay*1000);
4567                 
4568             return id;
4569         },
4570         
4571         /**
4572          * Rotates to 'radians' over 'seconds' starting at 'delay' seconds in the future
4573          * 
4574          * @param {number} angleInRadians
4575          * @param {number} delay 
4576          *          (optional, default=0),  # of seconds in the future that the fade will start       
4577          * @param {number} seconds
4578          *          time for fade  
4579          * @param {function} callback the callback to be invoked when the behavior has completed (optional: default=onRiTaEvent(e)
4580          * 
4581          * @returns {number} the unique id for this behavior
4582          */
4583         rotateTo : function(angleInRadians, seconds, delay, callback) {
4584 
4585             var rt = this;
4586             delay = delay || 0;
4587             seconds = seconds || 1.0;
4588                 
4589             var id = setTimeout(function() {
4590                 
4591                 var tb = new TextBehavior(rt)
4592                     .to( { _rotateZ: angleInRadians  }, seconds*1000)
4593                     .easing(rt._motionType)
4594                     .onUpdate( function () {
4595                         rt._rotateZ = this._rotateZ;
4596                     })
4597                     //.delay(delay*1000)
4598                     .onComplete( 
4599                         function () {
4600                            RiTaEvent(rt, 'rotateToComplete')._fire(callback);                    
4601                     });
4602             
4603                 tb.start();
4604                 
4605             }, delay*1000);
4606                 
4607             return id;
4608         },
4609         
4610         /**
4611          * Fades out the current text and fades in the <code>newText</code> over
4612          * <code>seconds</code> starting at 'startTime' seconds in the future
4613          * 
4614          * @param {string} newText
4615          *          to be faded in
4616          * @param {number} seconds
4617          *          time for fade
4618          * @param {number} endAlpha 
4619          *  (optional, default=255), the alpha to end on
4620          * @param {function} callback the callback to be invoked when the behavior has completed (optional: default=onRiTaEvent(e)
4621          * 
4622          * @returns {number} - the unique id for this behavior
4623          */
4624         textTo: function(newText, seconds, endAlpha, callback) {
4625             
4626           // grab the alphas if needed
4627           var c = this._color, startAlpha = 0, endAlpha = endAlpha || 255; // this._color.a
4628           
4629           if (this.fadeToTextCopy) 
4630           {
4631             startAlpha = this.fadeToTextCopy.alpha();
4632             RiText.dispose(this.fadeToTextCopy); // stop any currents
4633           }
4634         
4635           // use the copy to fade out
4636           this.fadeToTextCopy = this.clone().fadeOut(seconds, 0, true);
4637           RiText.dispose(this.fadeToTextCopy.fadeToTextCopy); // avoid turtles
4638           
4639           // and use 'this' to fade in
4640           this.text(newText).alpha(startAlpha);
4641           
4642           return this.colorTo([c.r, c.g, c.b, endAlpha], seconds * .95, 0, 'textTo');
4643         },
4644        
4645         /**
4646          * Move to new x,y position over 'seconds'
4647          * <p>
4648          * Note: uses the current <code>motionType</code> for this object, starting at 'delay' seconds in the future
4649          * 
4650          * @param {number} newX
4651          * @param {number} newY
4652          * @param {number} seconds
4653          * @param {number} delay
4654          * @param {function} callback the callback to be invoked when the behavior has completed (optional: default=onRiTaEvent(e)
4655          * 
4656          * @returns {number} the unique id for this behavior
4657          */
4658         moveTo : function(newX,newY,seconds,delay,callback) {
4659             
4660             var rt = this;
4661             
4662             delay = delay || 0;
4663             seconds = seconds || 1.0;
4664             
4665             var id = setTimeout(function() {
4666                 
4667                 new TextBehavior(rt)
4668                     .to( { x: newX, y: newY }, seconds*1000)
4669                     .easing(rt._motionType)
4670                     .onUpdate( function () {
4671                         rt.x = this.x ;
4672                         rt.y = this.y ;
4673                     })
4674                     .delay(delay).onComplete( 
4675                         function () {
4676                             RiTaEvent(rt, 'moveToCompleted')._fire(callback);                    
4677                         })
4678                     .start();
4679                 
4680             }, delay*1000);
4681             
4682             return id;
4683         },
4684         
4685         ////////////////////////////////////////////////////////////////////////////////////////
4686 
4687         analyze : function() {
4688     
4689             var words = (this._rs._text.indexOf(SP) ? RiTa.tokenize(this._rs._text) : [this._rs._text]),
4690                 lex = RiLexicon._getInstance(), slash = '/', stressyls, raw, delim = '-', 
4691                 phonemes = E, syllables = E, stresses = E, lts;
4692         
4693             this.features = this.features || {};
4694             
4695             for (var i = 0, l = words.length; i < l; i++) {
4696                 
4697                 raw = lex._getRawPhones(words[i]); 
4698                 
4699                 if (!raw) {
4700                     
4701                     if (!RiTa.SILENT && console)
4702                         console.log("[RiTa] Using LTS for '"+words[i]+"'");
4703                       
4704                     lts = lts || LetterToSound();
4705                     raw = this._rs.syllabify(lts.getPhones(words[i]));
4706                 }
4707  
4708                 phonemes += raw.replace(/[0-2]/g, E).replace(/ /g, delim) + SP;
4709                 syllables += raw.replace(/ /g, slash).replace(/1/g, E) + SP;
4710 
4711                 stressyls = raw.split(SP);   
4712                 for (var j = 0; j < stressyls.length; j++) {
4713 
4714                     if (!stressyls[j].length) continue;
4715                     
4716                     stresses += (stressyls[j].indexOf(RiLexicon.STRESSED) > -1) 
4717                         ? RiLexicon.STRESSED : RiLexicon.UNSTRESSED;
4718                     
4719                     if (j < stressyls.length-1) stresses += slash;      
4720                 }
4721                 if (!endsWith(stresses, SP)) stresses += SP;     
4722             }
4723             this.features.phonemes = phonemes.trim();
4724             this.features.stresses = stresses.trim();
4725             this.features.syllables = syllables.trim();
4726             
4727             //log(this.features);
4728     
4729             return this;
4730         },
4731         
4732         
4733         /**
4734          * Set/gets the text for this RiText
4735          * 
4736          * @param {string} txt the new text (optional)
4737          * @returns {object | number} this RiText (for sets) or the current text (for gets) 
4738          */
4739         text : function(txt) {
4740             
4741             if (arguments.length == 1) {
4742                 
4743                 var theType = Type.get(txt);
4744                 
4745                 if (theType == N) {
4746                     txt = String.fromCharCode(txt);
4747                 }
4748                 else if (theType == O && typeof txt.text == F) { 
4749                     txt = txt.text();
4750                 }
4751                 this._rs = (this._rs) ? this._rs.text(txt) : new RiString(txt);
4752                 
4753                 if (!this._rs) err("no rs!! "+txt); // TODO:remove
4754      
4755                 return this;
4756             }
4757             
4758             return this._rs._text;
4759         },
4760         
4761         /**
4762          * Searches for a match between a substring (or regular expression) and the contained
4763          * string, and returns the matches
4764          * 
4765          * @param {string | object} regex
4766          * @returns {array} strings matches or empty array if none are found
4767          */
4768         match : function(regex) {
4769             
4770             return this._rs.match(regex);
4771             
4772         },
4773         
4774          /**
4775          * Returns the character at the given 'index', or empty string if none is found
4776          * 
4777          * @param {number} index index of the character
4778          * @returns {string} the character
4779          */
4780         charAt : function(index) {
4781 
4782             return this._rs.charAt(index);
4783             
4784         },
4785 
4786         
4787         /**
4788          * Concatenates the text from another RiText at the end of this one
4789          * 
4790          * @returns {object} this RiText
4791          */
4792         concat : function(riText) {
4793 
4794             return this._rs._text.concat(riText.text());
4795             
4796         },
4797         
4798          /**
4799          * Returns true if and only if this string contains the specified sequence of char values.
4800          * 
4801          * @param {string} text text to be checked
4802          * @returns {boolean}
4803          */
4804         containsWord : function(text) {
4805             
4806             return this._rs.indexOf(text) > -1;
4807             
4808         },
4809         
4810         /**
4811          * Tests if this string ends with the specified suffix.
4812          * 
4813          * @param {string} substr string the suffix.
4814          * 
4815          * @returns {boolean} true if the character sequence represented by the argument is a suffix of
4816          *         the character sequence represented by this object; false otherwise.          * 
4817          */
4818         endsWith : function(substr) {
4819             
4820             return endsWith(this._rs._text, substr);
4821             
4822         },
4823         
4824         /**
4825          * Compares this RiText to the specified object. The result is true if and only if the
4826          * argument is not null and is a RiText object that represents the same sequence of
4827          * characters as this object.
4828          * 
4829          * @param {object} RiText RiText object to compare this RiText against.
4830          * @returns {boolean} true if the RiText are equal; false otherwise.
4831          */
4832         equals : function(RiText) {
4833             
4834             return RiText._rs._text === this._rs._text;
4835             
4836         },
4837 
4838         /**
4839          * Compares this RiText to another RiText, ignoring case considerations.
4840          * 
4841          * @param {string | object} str String or RiText object to compare this RiText against
4842          * @returns {boolean} true if the argument is not null and the Strings are equal, ignoring
4843          *         case; false otherwise.
4844          */
4845         equalsIgnoreCase : function(str) {
4846             
4847             if (typeof str === S) {
4848                 
4849                 return str.toLowerCase() === this._rs._text.toLowerCase();
4850             } 
4851             else {
4852                 
4853                 return str.text().toLowerCase() === this._rs._text.toLowerCase();
4854             }
4855             
4856         },
4857         
4858          /**
4859          * Returns the index within this string of the first occurrence of the specified character.
4860          * 
4861          * @param {string} searchstring (Required) or character to search for
4862          * @param {number} start (Optional) The start position in the string to start the search. If omitted,
4863          *        the search starts from position 0
4864          * @returns {number} the first index of the matching pattern or -1 if none are found
4865          */
4866         indexOf : function(searchstring, start) {
4867             
4868             return this._rs._text.indexOf(searchstring, start);
4869             
4870         },
4871         
4872         /**
4873          * Inserts 'newWord' at 'wordIdx' and shifts each subsequent word accordingly.
4874          *
4875          * @returns {object} this RiText
4876          */
4877         insertWordAt : function(newWord, wordIdx) {
4878                     
4879             var words = this._rs.words();
4880             if (newWord && newWord.length && wordIdx >= 0 && wordIdx < words.length) {
4881              
4882                 // filthy hack to preserve punctuation in 'newWord'
4883                 words.splice(wordIdx,0, DeLiM+newWord+DeLiM);
4884                 
4885                 
4886                 this._rs.text( RiTa.untokenize(words).replace(new RegExp(DeLiM,'g'),E) );
4887             }
4888 
4889             return this;
4890             
4891         },
4892         
4893          /**
4894          * Returns the index within this string of the last occurrence of the specified character.
4895          * 
4896          * @param {string} searchstring The string to search for
4897          * @param {number} start (Optional) The start position in the string to start the search. If omitted,
4898          *        the search starts from position 0
4899          *        
4900          * @returns {number} the last index of the matching pattern or -1 if none are found
4901          */
4902         lastIndexOf : function(searchstring, start) {
4903             
4904             return this._rs._text.lastIndexOf(searchstring, start);
4905             
4906         },
4907         
4908         /**
4909          * Returns the length of this string.
4910          * 
4911          * @returns {number} the length
4912          */
4913         length : function() {
4914             
4915             return this._rs._text.length;
4916             
4917         },
4918         
4919     
4920          /**
4921          * Returns an array of part-of-speech tags, one per word, using RiTa.tokenize() and RiTa.posTag().
4922          *
4923          * @returns {array} strings of pos, one per word
4924          */
4925         pos : function() {
4926                    
4927             var words = RiTa.tokenize((this._rs._text)); // was getPlaintext()
4928             var tags = PosTagger.tag(words); 
4929   
4930             for ( var i = 0, l = tags.length; i < l; i++) {
4931                 if (!strOk(tags[i])) 
4932                     err("RiText: can't parse pos for:" + words[i]);
4933             }
4934         
4935             return tags;
4936             
4937         },
4938 
4939         /**
4940          * Returns the part-of-speech tag for the word at 'index', using RiTa.tokenize() and RiTa.posTag().
4941          * 
4942          * @param {number} index the word index
4943          * @returns {string} the pos
4944          */
4945         posAt : function(index) {
4946             
4947             var tags = this._rs.pos();
4948 
4949             if (isNull(tags) || tags.length == 0 || index < 0 || index >= tags.length)
4950                 return E;
4951             
4952             return tags[index];
4953             
4954         },
4955 
4956          /**
4957          * Removes the character at the specified index
4958          * 
4959          * @param {number} ind the index
4960          * @returns {object} RiText
4961          */
4962         removeCharAt : function(ind) { 
4963             
4964             this._rs.removeCharAt(ind);
4965             return this;
4966             
4967         },
4968 
4969       /**
4970          * Replaces the character at 'idx' with 'replaceWith'. If the specified 'idx' is less than
4971          * zero, or beyond the length of the current text, there will be no effect.
4972          * 
4973          * @param {number} idx the character index
4974          * @param {string} replaceWith the replacement
4975          * @returns {object} this RiText
4976          */
4977         replaceCharAt : function(idx, replaceWith) {
4978             
4979             if (idx < 0 || idx >= this._rs.length()) 
4980                 return this;
4981                 
4982             var s = this._rs.text();
4983             var beg = s.substring(0, idx);
4984             var end = s.substring(idx + 1);
4985             var s2 = null;
4986             
4987             if (replaceWith)
4988                 s2 = beg + replaceWith + end;
4989             else
4990                 s2 = beg + end;
4991 
4992             return this._rs.text(s2);
4993             
4994         },
4995 
4996         /**
4997          * Replaces the first instance of 'regex' with 'replaceWith'
4998          * 
4999          * @param {string | regex} regex the pattern
5000          * @param {string} replaceWith the replacement
5001          * 
5002          * @returns this RiText
5003          */
5004         replaceFirst : function(regex, replaceWith) {
5005             
5006             if (replaceWith) 
5007                 this._rs._text = this._rs._text.replace(regex,replaceWith);
5008             return this;
5009             
5010         },
5011         
5012         /**
5013          * Replaces the last instance of 'regex' with 'replaceWith'
5014          * 
5015          * @param {string | regex} regex the pattern
5016          * @param {string} replaceWith the replacement
5017          * 
5018          * @returns this RiText
5019          */
5020         replaceLast : function(regex, replaceWith) {
5021             if (replaceWith) {
5022             
5023 
5024             if (this._rs._text.lastIndexOf(regex)>=0){//this do not work for regex..
5025             var ind = this._rs._text.lastIndexOf(regex);
5026             var before = this._rs._text.substring(0, ind);
5027             var after = this._rs._text.substring(ind+regex.length);
5028 
5029             var finished = before + replaceWith + after;
5030                 this._rs._text = finished;
5031                         
5032             return this;
5033             }
5034             };
5035 
5036         },
5037         
5038         
5039         /**
5040          * Replaces each substring of this string that matches the given regular expression with the
5041          * given replacement.
5042          * 
5043          * @param {string | regex } pattern the pattern to be matched
5044          * @param {string} replacement the replacement sequence of char values
5045          * @returns {object} this RiText
5046          */
5047         replaceAll : function(pattern, replacement) {
5048             
5049             if (pattern && (replacement || replacement==='')) {
5050                 this._rs._text = replaceAll(this._rs._text, pattern, replacement);
5051             }
5052             return this;
5053             
5054         },
5055         
5056          /**
5057          * Replaces the word at 'wordIdx' with 'newWord'
5058          * 
5059          * @param {number} wordIdx the index
5060          * @param {string} newWord the replacement
5061          * 
5062          * @returns {object} this RiText
5063          */
5064         replaceWordAt : function(wordIdx, newWord) {
5065             
5066             var words = this.words();
5067             
5068             if (wordIdx >= 0 && wordIdx < words.length) {
5069                 
5070                 words[wordIdx] = newWord;
5071                 
5072                 this._rs.text(RiTa.untokenize(words));
5073             }
5074             
5075             return this;
5076             
5077         },
5078         
5079          /**
5080          * Extracts a part of a string from this RiText
5081          * 
5082          * @param {number} begin (Required) The index where to begin the extraction. First character is at
5083          *        index 0
5084          * @param {number} end (Optional) Where to end the extraction. If omitted, slice() selects all
5085          *        characters from the begin position to the end of the string
5086          * @returns {object} this RiText
5087          */
5088         slice : function(begin, end) {
5089             
5090             var res = this._rs._text.slice(begin, end) || E;
5091             return this._rs.text(res);
5092              
5093         },
5094         
5095         /**
5096          * Split a RiText into an array of sub-RiText and return the new array.
5097          * 
5098          * If an empty string ("") is used as the separator, the string is split between each character.
5099          * 
5100          * @param {string} separator (Optional) Specifies the character to use for splitting the string. If
5101          *        omitted, the entire string will be returned. If an empty string ("") is used as the separator, 
5102          *        the string is split between each character.
5103          *        
5104          * @param {number} limit (Optional) An integer that specifies the number of splits
5105          * 
5106          * @returns {array} RiText
5107          */
5108         split : function(separator, limit) {
5109             
5110             var parts = this._rs._text.split(separator, limit);
5111             var rs = [];
5112             for ( var i = 0; i < parts.length; i++) {
5113                 if (!isNull(parts[i]))
5114                     rs.push(new RiText(parts[i]));
5115             }
5116             return rs;
5117             
5118         },
5119         
5120          /**
5121          * Tests if this string starts with the specified prefix.
5122          * 
5123          * @param {string} substr string the prefix
5124          * @returns {boolean} true if the character sequence represented by the argument is a prefix of
5125          *         the character sequence represented by this string; false otherwise. Note also
5126          *         that true will be returned if the argument is an empty string or is equal to this
5127          *         RiText object as determined by the equals() method.
5128          */
5129         startsWith : function(substr) {
5130             
5131             return this._rs.indexOf(substr) == 0;
5132             
5133         },
5134         
5135          /**
5136          * Extracts the characters from a string, between two specified indices, and sets the
5137          * current text to be that string. 
5138          * 
5139          * @param {number} from  The index where to start the extraction. First character is at
5140          *        index 0
5141          * @param {number} to (optional) The index where to stop the extraction. If omitted, it extracts the
5142          *        rest of the string
5143          * @returns {object} this RiText
5144          */
5145         substring : function(from, to) {
5146 
5147             return this._rs.text(this._rs._text.substring(from, to));
5148             
5149         },
5150 
5151         
5152          /**
5153          * Extracts the characters from this objects contained string, beginning at 'start' and
5154          * continuing through the specified number of characters, and sets the current text to be
5155          * that string. (from Javascript String)
5156          * 
5157          * @param {number} start  The index where to start the extraction. First character is at
5158          *        index 0
5159          * @param {number} length (optional) The index where to stop the extraction. If omitted, it extracts the
5160          *        rest of the string
5161          * @returns {object} this RiText
5162          */
5163         substr : function(start, length) {
5164             
5165             var res = this._rs._text.substr(start, length);
5166             return this._rs.text(res);
5167             
5168         },
5169         
5170         /**
5171          * Converts this object to an array of RiText objects, one per character
5172          * 
5173          * @returns {array} RiTexts with each letter as its own RiText element
5174          */
5175         toCharArray : function() {
5176             var parts = this._rs._text.split(E);
5177             var rs = [];
5178             for ( var i = 0; i < parts.length; i++) {
5179                 if (!isNull(parts[i]))
5180                     rs.push(parts[i]);
5181             }
5182             return rs;
5183         },
5184         
5185          /**
5186          * Converts all of the characters in this RiText to lower case
5187          * 
5188          * @returns {object} this RiText
5189          */
5190         toLowerCase : function() {
5191             
5192             return this._rs.text(this._rs._text.toLowerCase());
5193             
5194          },
5195          
5196          /**
5197          * Converts all of the characters in this RiText to upper case
5198          * 
5199          * @returns {object} this RiText
5200          */
5201         toUpperCase : function() {
5202             
5203             return this._rs.text(this._rs._text.toUpperCase());
5204             
5205         },
5206         
5207         /**
5208          * Returns a copy of the string, with leading and trailing whitespace omitted.
5209          * 
5210          * @returns {object} this RiText
5211          */
5212         trim : function() {
5213             
5214             return this._rs.text(trim(this._rs._text));
5215             
5216         },
5217         
5218                 /**
5219          * Returns the word at 'index', according to RiTa.tokenize()
5220          * 
5221          * @param {number} index the word index
5222          * @returns {string} the word
5223          */
5224         wordAt : function(index) {
5225             
5226             var words = RiTa.tokenize((this._rs._text));
5227             if (index < 0 || index >= words.length)
5228                 return E;
5229             return words[index];
5230             
5231         },
5232         
5233          /**
5234          * Returns the number of words in the object, according to RiTa.tokenize().
5235          * 
5236          * @returns {number} number of words
5237          */
5238         wordCount : function() {
5239             
5240             if (!this._rs._text.length) return 0;
5241             return this.words().length;
5242             
5243         },
5244         
5245         /**
5246          * Returns the array of words in the object, via a call to RiTa.tokenize().
5247          * 
5248          * @returns {array} strings, one per word
5249          */
5250         words : function() { //TODO: change to words()
5251             
5252             return RiTa.tokenize(this._rs._text);
5253             
5254         },
5255 
5256 
5257         /**
5258          * Returns the distance between the center points of this and another RiText
5259          * @returns {number} the distance
5260          */
5261         distanceTo : function(riText)
5262         {
5263           var p1 = this.center(), p2 = riText.center();
5264           return RiTa.distance( p1.x,  p1.y,  p2.x,  p2.y);
5265         },
5266       
5267         /**
5268          * Returns the center point of this RiText as derived from its bounding box
5269          * @returns {object} { x, y }
5270          */
5271         center : function() {
5272             
5273             var bb = this.boundingBox();
5274             return { x: bb.x+bb.width/2, y: bb.y - bb.height/2 };
5275         },
5276         
5277         /**
5278          * Splits the object into an array of RiTexts, one per word
5279          * tokenized with the supplied regex.
5280          * 
5281          * @param {regex | string} to split
5282          * @returns {array} RiTexts
5283          */
5284         splitWords : function(regex) {
5285             
5286             regex = regex || ' ';
5287             
5288             (typeof regex == S) && (regex = new RegExp(regex));  
5289             
5290             var l = [];
5291             var txt = this._rs._text;
5292             var words = txt.split(regex);
5293     
5294             for ( var i = 0; i < words.length; i++) {
5295                 if (words[i].length < 1) continue;
5296                 var tmp = this.clone();
5297                 tmp.text(words[i]);
5298                 var mx = _wordOffsetFor(this, words, i);
5299                 tmp.position(mx, this.y);
5300                 l.push(tmp);
5301             }
5302     
5303             return l;
5304         },
5305     
5306         /**
5307          * Splits the object into an array of RiTexts, one per letter.
5308          * @returns {array} RiTexts
5309          */
5310         splitLetters : function() {
5311     
5312             var l = [];
5313             var chars = [];
5314             var txt = this.text();
5315             var len = txt.length;
5316             for (var t = 0; t < len; t++) {
5317                 chars[t] = txt.charAt(t);
5318             }
5319     
5320             for ( var i = 0; i < chars.length; i++) {
5321                 if (chars[i] == ' ') continue;
5322                 var tmp = this.clone();
5323                 tmp.text(chars[i]);
5324                 var mx = this.charOffset(i);
5325                 tmp.position(mx, this.y);
5326     
5327                 l.push(tmp);
5328             }
5329     
5330             return l;
5331         },
5332         
5333         /**
5334          * Returns true if the bounding box for this RiText contains the point mx/my
5335          * 
5336          * @param {number} mx
5337          * @param {number} my
5338          * @returns {boolean}
5339          */
5340         contains : function(mx, my) {
5341                         
5342            var bb = this.g._getBoundingBox(this);
5343            
5344             //           // TODO: need to test this with point
5345             //           if (!my && Type.get(mx.x) == 'Number' && Type.get(mx.y) == 'Number') {
5346             //               mx = mx.x;
5347             //               my = mx.y;
5348             //           }
5349             //           
5350            bb.x += this.x;
5351            bb.y += this.y;
5352            
5353            return (!(mx<bb.x || mx > bb.x+bb.width || my > bb.y || my < bb.y-bb.height));
5354         },
5355         
5356         /**
5357          * Creates and returns a new (copy) of this RiText
5358          * @returns {object} RiText
5359          */
5360         clone : function() {
5361 
5362             var c = new RiText(this.text(), this.x, this.y, this._font);
5363             c.color(this._color.r, this._color.g, this._color.b, this._color.a);
5364 
5365             for (prop in this) {
5366                 if (typeof this[prop] ==  F || typeof this[prop] ==  O) 
5367                     continue;
5368                 c[prop] = this[prop];
5369             }
5370 
5371             return c;
5372         },
5373         
5374         /**
5375          * Set/gets the alignment for this RiText (RiText.LEFT || RiText.CENTER || RiText.RIGHT)
5376          * 
5377          * @param {object} align (optional) the alignment 
5378          * @returns {object} this RiText (set) or the current font (get)
5379          */
5380         align : function(align) {
5381             if (arguments.length) {
5382                 this._alignment = align;
5383                 return this;
5384             }
5385             return this._alignment;
5386         },
5387 
5388         
5389         /**
5390          * Set/gets the font for this RiText
5391          * 
5392          * @param {object} font (optional) containing the font data OR
5393          * @param {string} font containing the font name AND
5394          * @param {number} size (optional) containing the font size 
5395          * @returns {object} this RiText (set) or the current font (get)
5396          */
5397         font : function(font,size) {
5398             
5399             var a = arguments;
5400             
5401             if (a.length == 1) {
5402 
5403                 this._font = font || _getDefaultFont();
5404                 this._font.size = this._font.size || RiText.defaults.fontSize;
5405                 this._font.leading = this._font.leading || this._font.size * RiText.defaults.leadingFactor;
5406                 return this;
5407             }
5408             else if (a.length == 2) {
5409                 
5410                 return this.font( RiText.createFont(a[0], a[1]) );
5411             }
5412 
5413             return this._font;
5414         },    
5415         
5416 
5417         /**
5418          * Set/gets the boundingbox visibility for this RiText
5419          * 
5420          * @param {boolean} trueOrFalse (optional) true or false 
5421          * @returns {object | boolean}this RiText (set) or the current boolean value (get)
5422          */
5423         showBoundingBox : function(trueOrFalse) {
5424            if (arguments.length == 1) {
5425                this._boundingBoxVisible = trueOrFalse;
5426                return this;
5427            }
5428            return this._boundingBoxVisible;
5429         },
5430 
5431         /**
5432          * Set/gets the color for this RiText
5433          * 
5434          * @param {number | array} cr takes 1-4 number values for rgba, or an array of size 1-4
5435          * @param {number} cg
5436          * @param {number} cb
5437          * @param {number} ca
5438          * 
5439          * @returns {object} either this RiText (for sets) or the current color object (for gets)
5440          */
5441         color : function(cr, cg, cb, ca) {
5442             
5443             if (arguments.length == 0) 
5444                 return this._color;
5445             this._color = parseColor.apply(this, arguments);
5446             return this;
5447         },
5448     
5449         /**
5450          * Returns false if the alpha value of this object is <= 0, else true
5451          * @returns {boolean} 
5452          */
5453         isVisible : function() { 
5454             
5455             if (arguments.length)
5456                  err('visible() takes no arguments');
5457             
5458             return this._color.a > 0;
5459         },
5460         
5461         /**
5462          * Set/gets the alpha (transparency) for this RiText
5463          *
5464          * @param {number} a (optional) input (0-255) 
5465          * @returns {object | number} either this RiText (for set) or the current alpha value (for get)
5466          */
5467         alpha : function(a) {
5468             if (arguments.length==1) {
5469                 this._color.a = a;
5470                 return this;
5471             }
5472             else return this._color.a;
5473         },
5474     
5475         /**
5476          * Set/gets the position for this RiText
5477          * 
5478          * @param {number} x (optional) X coordinate
5479          * @param {number} y (optional) Y coordinate
5480          * 
5481          * @returns {object} either this RiText (for sets) or object {x, y} (for gets)
5482          */
5483         position : function(x,y) {
5484             
5485             if (!arguments.length) 
5486                 return { x: this.x, y: this.y };
5487             this.x = x;
5488             this.y = y;
5489             return this;
5490         },
5491      
5492         /**
5493          * Sets/gets the 2d rotation for this RiText
5494          * 
5495          * @param {number} rotate degree to rotate
5496          * 
5497          * @returns {object | number} either this RiText (for sets) or the current degree to rotation (for gets)
5498          */
5499         rotate : function(rotate) {
5500             
5501           if (!arguments.length) 
5502               return this._rotateZ
5503           this._rotateZ = rotate;
5504           return this;
5505         },
5506     
5507         /**
5508          * Sets/gets the scale factor for this RiText (takes 0-2 arguments) 
5509          * 
5510          * @param {number} theScaleX the ScaleX ratio
5511          * @param {number} theScaleY (optional) the ScaleY ratio 
5512          * 
5513          @returns {object | number} either this RiText (for sets) or the current degree of rotation (for gets)
5514          */
5515         scale : function(theScaleX, theScaleY) {
5516             
5517             if (!arguments.length) return { x:this._scaleX, y:this._scaleY };
5518                 
5519             if (arguments.length == 1) theScaleY = theScaleX;
5520             
5521             this._scaleX = theScaleX;
5522             this._scaleY = theScaleY;
5523             
5524             return this;
5525         },
5526     
5527         /**
5528          * Returns the pixel x-offset for the character at 'charIdx'
5529          * 
5530          * @param {number} charIdx
5531          * @returns {number} the pixel x-offset
5532          */
5533         charOffset : function(charIdx) {
5534     
5535             var theX = this.x;
5536     
5537             if (charIdx > 0) {
5538     
5539                 var txt = this.text();
5540     
5541                 var len = txt.length;
5542                 if (charIdx > len) // -1?
5543                 charIdx = len;
5544     
5545                 var sub = txt.substring(0, charIdx);
5546                 theX = this.x + this.g._textWidth(this._font, sub);
5547             }
5548 
5549             return theX;
5550         },
5551         
5552         /**
5553          * Returns the pixel x-offset for the word at 'wordIdx'
5554          * @param {number} wordIdx
5555          * @returns {number} the pixel x-offset
5556          */
5557         wordOffset : function(wordIdx) { 
5558             
5559             var words =  this.text().split(' ');
5560             return _wordOffsetFor(this, words, wordIdx);
5561         },
5562 
5563         /**
5564          * Returns the bounding box for the current text.
5565          * @returns {object} x,y,width,height 
5566          */
5567         boundingBox : function() {
5568             
5569           var bb = this.g._getBoundingBox(this);
5570             //          if (0 && transformed) { // tmp: do with matrix
5571             //              bb.x += this.x;
5572             //              bb.y += this.y;
5573             //              bb.width *= this._scaleX;
5574             //              bb.height *= this._scaleY;
5575             //          }
5576             //          * @param {boolean} (optional, default=false) 
5577             //          *   if true, bounding box is first transformed (rotate,translate,scale) 
5578             //          * according to the RiTexts current matrix
5579           return bb;
5580         },
5581         
5582         /**
5583          * Returns the current width of the text (derived from the bounding box)
5584          * @returns {number} the width of the text
5585          */
5586         //@param {boolean} (optional, default=false) if true, width is first scaled
5587         textWidth : function() { 
5588             
5589             return this.g._textWidth(this._font,this._rs._text);
5590         },
5591         
5592         /**
5593          * Returns the current height of the text (derived from the bounding box)
5594          * @returns {number} the current height of the text
5595          */
5596         // * @param {boolean} (optional, default=false) if true, height is first scaled
5597         textHeight : function() { 
5598             
5599             return this.g._textHeight(this);
5600         },
5601         
5602         /**
5603          * Sets/gets the size of the current font. Note: this method only
5604          * effects only scaleX/Y, not the font's internal properties 
5605          * 
5606          * @param {number} sz (optional) font size 
5607          * 
5608          * @returns {object | number} either this RiText (for set) or the current font size (for get)
5609          */
5610         fontSize : function(sz) {
5611  
5612             // TODO: what to do if scaleX and scaleY are different
5613             
5614             return (arguments.length) ? this.scale( sz / this._font.size) 
5615                 : (this._font.size * this._scaleX);
5616         },
5617         
5618         /**
5619          * Returns the ascent of the current font 
5620          * @returns {number} the ascent of the current font
5621          */
5622         textAscent : function() { 
5623             
5624             return this.g._textAscent(this);
5625         },
5626         
5627         /**
5628          * Returns the descent of the current font 
5629          * @returns {number} the descent of the current font 
5630          */
5631         textDescent : function() { 
5632             
5633             return this.g._textDescent(this);
5634         },
5635     
5636        
5637         /*
5638          * Returns all existing text behaviors for the object  
5639          * @returns {array} 
5640         behaviors: function () {
5641 
5642             return this._behaviors;
5643 
5644         },*/
5645         
5646         
5647         /**
5648          * Adds a new text behaviors to the object  
5649          * @returns {array} 
5650          */
5651         _addBehavior: function ( behavior ) {
5652 
5653             this._behaviors.push( behavior );
5654 
5655         },
5656         
5657         /**
5658          * Removes the text behaviors for the object  
5659          * @param {string} the behaviors
5660          */
5661         _removeBehavior: function ( behavior ) {
5662 
5663             var i = this._behaviors.indexOf(behavior);
5664 
5665             if ( i !== -1 ) {
5666 
5667                 this._behaviors.splice( i, 1 );
5668 
5669             }
5670 
5671         },
5672         
5673         /**
5674          * Removes all text behaviors for the object  
5675          * @returns {array} 
5676          */
5677         _removeBehaviors: function () {
5678 
5679             this._behaviors = [];
5680 
5681         },
5682         
5683         // TODO: make PRIVATE
5684         /**
5685          * Updates existing text behaviors for the object 
5686          * @param {string} the behaviors
5687          */
5688         _updateBehaviors: function (time) {
5689 
5690             var i = 0;
5691             var num = this._behaviors.length;
5692             var time = time || Date.now();
5693 
5694             while ( i < num ) {
5695 
5696                 if (this._behaviors[ i ].update(time) ) {
5697                     i++;
5698 
5699                 } else {
5700 
5701                     this._behaviors.splice(i, 1);
5702                     num --;
5703 
5704                 }
5705             }
5706         },
5707         
5708         /** @private */
5709         toString : function() {
5710             
5711             var s =  (this._rs && this._rs._text) || 'undefined';
5712             return '['+Math.round(this.x)+","+Math.round(this.y)+",'"+s+"']";
5713         }
5714     }
5715 
5716     // ////////////////////////////////////////////////////////////
5717     // RiTa object (singleton)
5718     // ////////////////////////////////////////////////////////////
5719     
5720     /**
5721      * @namespace A collection of static variables and functions for the RiTa library
5722      */
5723     RiTa = {
5724 
5725         // RiTa constants =================================
5726         
5727         /** The current version of the RiTa tools */
5728 
5729         VERSION : '0.15',
5730 
5731         /** 
5732          * a=alpha
5733          * b=beta
5734          * @private
5735          */
5736         PHASE : 'a', 
5737         
5738         /** @private */
5739         P5_COMPATIBLE : true,
5740         
5741         /** For tokenization, Can't -> Can not, etc. */
5742         SPLIT_CONTRACTIONS : false,
5743 
5744         // For Conjugator =================================
5745         
5746         //TODO: add comments
5747         
5748         PHONEMES : 'phonemes',
5749         
5750         STRESSES : 'stresses',
5751         
5752         SYLLABLES : 'syllables',
5753         
5754         FIRST_PERSON : 1,
5755 
5756         SECOND_PERSON : 2,
5757 
5758         THIRD_PERSON : 3,
5759 
5760         PAST_TENSE : 4,
5761 
5762         PRESENT_TENSE : 5,
5763 
5764         FUTURE_TENSE : 6,
5765 
5766         SINGULAR : 7,
5767 
5768         PLURAL : 8,
5769 
5770         NORMAL : 9,
5771         
5772         ABBREVIATIONS : [   "Adm." ,"Capt." ,"Cmdr." ,"Col." ,"Dr." ,"Gen." ,"Gov." ,"Lt." ,"Maj." ,"Messrs." ,"Mr.","Mrs." ,"Ms." ,"Prof." ,"Rep." ,"Reps." ,"Rev." ,"Sen." ,"Sens." ,"Sgt." ,"Sr." ,"St.","a.k.a." ,"c.f." ,"i.e." ,"e.g." ,"vs." ,"v.", "Jan." ,"Feb." ,"Mar." ,"Apr." ,"Mar." ,"Jun." ,"Jul." ,"Aug." ,"Sept." ,"Oct." ,"Nov." ,"Dec." ],
5773            
5774         /** The infinitive verb form  - 'to eat an apple' */
5775         INFINITIVE : 1,
5776 
5777         /** Gerund form of a verb  - 'eating an apple' */
5778         GERUND : 2,
5779 
5780         /** The imperative verb form - 'eat an apple!' */
5781         IMPERATIVE : 3,
5782 
5783         /** Bare infinitive verb form - 'eat an apple' */
5784         BARE_INFINITIVE : 4,
5785 
5786         /** The subjunctive verb form */
5787         SUBJUNCTIVE : 5,
5788  
5789         /** Set to true to disable all console output */
5790         SILENT : false,
5791         
5792         // Start Methods =================================
5793         
5794         /**
5795          * Joins array of word, similar to words.join(" "), but attempts to preserve punctuation position
5796          * unless the 'adjustPunctuationSpacing' flag is set to false
5797          * 
5798          * @param {array} arr the array to join
5799          * @param {string} delim the characters to place between each array element
5800          * @param {boolean} adjustPunctuationSpacing (optional, default=true)
5801          * 
5802          * @returns {string} the joined array as string
5803          */
5804          untokenize: function(arr, delim, adjustPunctuationSpacing) {
5805              
5806             delim = delim || SP;
5807             adjustPunctuationSpacing = adjustPunctuationSpacing || 1;
5808             
5809             if (adjustPunctuationSpacing) {
5810                 var newStr = arr[0] || E;
5811                 for ( var i = 1; i < arr.length; i++) {
5812                     if (arr[i]) {
5813                         if (!RiTa.isPunctuation(arr[i]))
5814                             newStr += delim;
5815                         newStr += arr[i];
5816                     }
5817                 }
5818                 return newStr;
5819             }
5820             
5821             return arr.join(delim);  
5822         },
5823         
5824         /**
5825          * Returns a random number between min(default=0) and max(default=1)
5826          * @returns {number}
5827          */
5828         random: function() {
5829             
5830             var currentRandom = Math.random();
5831             if (arguments.length === 0) return currentRandom;
5832             if (arguments.length === 1) return currentRandom * arguments[0];
5833             var aMin = arguments[0], aMax = arguments[1];
5834             
5835             return currentRandom * (aMax - aMin) + aMin;
5836             
5837         },
5838         
5839         /**
5840          * Convenience method to get the distance between 2 points
5841          * @param {number} x1
5842          * @param {number} y1
5843          * @param {number} x2
5844          * @param {number} y2
5845          * 
5846          * @returns {number}
5847          */
5848         distance: function(x1,y1,x2,y2) {
5849             
5850             var dx = x1 - x2, dy = y1 - y2;
5851             return Math.sqrt(dx * dx + dy * dy);
5852             
5853         },
5854         
5855         
5856         /**
5857          * Starts a timer that calls 'onRiTaEvent', or the specified callback, 
5858          * every 'period' seconds
5859          * 
5860          * @param {number} period
5861          * @param {function} callback called every 'period' seconds
5862          * @returns {number} the unique id for the timer
5863          */
5864         timer: function(period, callback) {
5865             
5866             var id = setInterval(function(){
5867                 
5868                 RiTaEvent(RiTa, 'tick')._fire(callback);  
5869                 
5870             }, period * 1000);
5871             
5872             return id;
5873         }, 
5874         
5875         /**
5876          * Returns true if 'tag' is a valid PENN part-of-speech tag (e.g. cd, fw, jj, ls, nn, sym, vbg, wp)
5877          * @param {string} tag the PENN part-of-speech tag
5878          * @returns {boolean} true if the tag a valid PENN part-of-speech tag
5879          */
5880         _isPosTag : function(tag) {
5881             return PosTagger.isTag(tag);
5882             
5883         },
5884              
5885         // TODO: example
5886         /**
5887          * Tags the word (as usual) with a part-of-speech from the Penn tagset, 
5888          * then returns the corresponding part-of-speech for WordNet from the
5889          * set { 'n', 'v', 'a', 'r' } as a string. 
5890          * 
5891          * @param {string | array} words the text to be tagged
5892          * @returns {string | array} the corresponding part-of-speech for WordNet
5893          */
5894         _tagForWordNet  : function(words) {
5895             
5896             var posArr = RiTa.getPosTags(words);
5897             //var posArr = posTag(words);
5898             if (!isNull(words) && posArr.length) {
5899                 for ( var i = 0; i < posArr.length; i++) {
5900                     var pos = posArr[i];
5901                     if (PosTagger.isNoun(pos))      posArr[i] =  "n";
5902                     if (PosTagger.isVerb(pos))      posArr[i] =  "v";
5903                     if (PosTagger.isAdverb(pos))    posArr[i] =  "r";
5904                     if (PosTagger.isAdj(pos))      posArr[i] =  "a";
5905                 }
5906                 return posArr;  
5907             }
5908             return []; 
5909         },
5910           
5911         //TODO: example
5912         /**
5913          * Uses the default PosTagger to tag the input with a tag from the PENN tag set
5914          * @param {string | array} words the text to be tagged
5915          * @retuns {string | array}
5916          * 
5917          */
5918         getPosTags : function(words) {    
5919             
5920             var arr = Type.is(words,S) ? RiTa.tokenize(words) : words;
5921             return PosTagger.tag(arr);
5922         },
5923         
5924         // TODO: example
5925         /**
5926          * Takes an array of words and of tags and returns a 
5927          * combined String of the form:
5928          *  <pre>"The/dt doctor/nn treated/vbd dogs/nns"</pre>
5929          * assuming a "/" as 'delimiter'.
5930          *
5931          * @param {string} words the text to tag
5932          * @returns {string} 
5933          */
5934         getPosTagsInline : function(words, delimiter) { 
5935             
5936             if (!words || !words.length) return E;
5937             
5938             delimiter = delimiter || '/';
5939             words = Type.is(words,S) ? RiTa.tokenize(words) : words;
5940             
5941             var sb = E, tags = RiTa.getPosTags(words);
5942             for (var i = 0; i < words.length; i++) {
5943 
5944                 sb += (words[i]);
5945                 if (!RiTa.isPunctuation(words[i])) {
5946                     sb +=  delimiter + tags[i];
5947                 }
5948                 sb += SP;
5949             }
5950             
5951             return sb.trim();
5952         },
5953 
5954         // TODO: example
5955         /**
5956          * Converts a PENN part-of-speech tag to the simplified WordNet scheme 
5957          * (e.g. nn -> n, nns -> n, vbz -> v, rb -> r)
5958          * { "n" (noun), "v"(verb), "a"(adj), "r"(adverb), "-"(other) }
5959          * as a String.
5960          * 
5961          * @param {string} tag pos tag to convert
5962          * @returns {string} simplified WordNet tag
5963          */
5964         posToWordNet  : function(tag) {
5965             
5966             if (Type.get(tag) != S) 
5967                 err('Arg1 must be string');
5968 
5969             if (tag.length==0) return E;
5970             
5971             if (PosTagger.isNoun(tag))    
5972                 return "n";
5973             else if (PosTagger.isVerb(tag))
5974                 return "v";
5975             else if (PosTagger.isAdverb(tag))
5976                 return  "r";
5977             else if (PosTagger.isAdj(tag))
5978                 return  "a";
5979             else  
5980                 return  "-";
5981         },
5982         
5983         /**
5984          *  Returns the present participle form of the stemmed or non-stemmed 'verb'. 
5985          *  @param {string} verb the verb
5986          *  @returns {string} the present participle form of the verb
5987          */
5988         getPresentParticiple : function(verb) { 
5989             
5990             // TODO: need to call stem() and try again if first try fails
5991             return Conjugator().getPresentParticiple(verb);
5992         },
5993 
5994         /**
5995          *  Returns the past participle form of the stemmed or non-stemmed 'verb'. 
5996          *  @param {string} verb the verb
5997          *  @returns {string} the past participle form of the verb
5998          */
5999         getPastParticiple : function(verb) { 
6000             
6001             // TODO: need to call stem() and try again if first try fails
6002             return Conjugator().getPastParticiple(verb);
6003         },
6004 
6005         // TODO: 2 examples
6006         /**
6007          *  Conjugates the 'verb' according to the specified options
6008          *  @param {string} verb the verb stem
6009          *  @param {object} args containing the relevant options for the conjugator
6010          *  @returns {string}  the conjugated verb
6011          */
6012         conjugate : function(verb, args) {
6013 
6014             return Conjugator().conjugate(verb, args);            
6015         },
6016 
6017         // TODO: does this method requires a pre-stemmed noun? check tests... 
6018         // does it work only with noun? (check 'natural')
6019         // TODO: 2 examples (regular & irregular)
6020         
6021         /** 
6022          * Pluralizes a word according to pluralization rules (see regexs in constants)
6023          * Returns the regular or irregular plural form of noun.       
6024          * 
6025          * @param {string} word the noun
6026          * 
6027          * @returns {string} the plural form of noun
6028          */
6029         pluralize : function(word) {
6030 
6031             if (!word.length) return E;
6032 
6033             var i, rule, rules = PLURAL_RULES;
6034 
6035             if (inArray(MODALS, word.toLowerCase())) {
6036                 return word;
6037             }
6038 
6039             i = rules.length;
6040             while (i--) {
6041                 rule = rules[i];
6042                 if (rule.applies(word.toLowerCase())) {
6043                     return rule.fire(word);
6044                 }
6045             }
6046 
6047             return DEFAULT_PLURAL_RULE.fire(word);            
6048         },
6049         
6050         //TODO: 2 examples (regular & irregular)
6051         /** 
6052          * Singularize a word according to singularization rules (see regexs in constants)
6053         
6054          * @param {string} word the noun
6055          * @returns {string}  the singular form of noun
6056          */
6057         singularize : function(word) {
6058 
6059             if (!strOk(word)) return E;
6060 
6061             err('Implement me!'); 
6062         },
6063 
6064 
6065         /**
6066          *  Removes blank space from either side of a string
6067          *
6068          *  @param {string} the input string
6069          *  
6070          *  @returns {string}  
6071          */
6072         trim : function(str) {
6073             
6074             return trim(str); // delegate to private
6075             
6076         },
6077 
6078     
6079         /**
6080          *  Tokenizes the string according to Penn Treebank conventions
6081          *  See: http://www.cis.upenn.edu/~treebank/tokenization.html
6082          *  
6083          *  @param {string} words a sentence
6084          *  @param {string | regex} regex (optional) the pattern to be used for tozenization
6085          *  
6086          *  @return{array} strings, which each element is a single token (or word) 
6087          */
6088         tokenize : function(words, regex) {
6089             
6090             //TODO: 2 examples for doc comment, one with 1 arg, one with 2 (a regex that splits on spaces)
6091 
6092             if (regex) return words.split(regex);
6093             
6094             words = trim(words).replace(/``/g, "`` ");
6095             words = words.replace(/''/g, "  ''");
6096             words = words.replace(/([\\?!\"\\.,;:@#$%&])/g, " $1 ");
6097             words = words.replace(/\\.\\.\\./g, " ... ");
6098             words = words.replace(/\\s+/g, SP);
6099             words = words.replace(/,([^0-9])/g, " , $1");
6100             words = words.replace(/([^.])([.])([\])}>\"']*)\\s*$/g, "$1 $2$3 ");
6101             words = words.replace(/([\[\](){}<>])/g, " $1 ");
6102             words = words.replace(/--/g, " -- ");
6103             words = words.replace(/$/g, SP);
6104             words = words.replace(/^/g, SP);
6105             words = words.replace(/([^'])' /g, "$1 ' ");
6106             words = words.replace(/'([SMD]) /g, " '$1 ");
6107  
6108             if (RiTa.SPLIT_CONTRACTIONS) { // SAVE
6109                 words = words.replace(/'ll /g, " 'll "); 
6110                 words = words.replace(/'re /g, " 're "); 
6111                 words = words.replace(/'ve /g, " have ");
6112                 words = words.replace(/n't /g, " not "); 
6113                 
6114                 words = words.replace(/'LL /g, " 'LL "); 
6115                 words = words.replace(/'RE /g, " 'RE "); 
6116                 words = words.replace(/'VE /g, " 'VE "); 
6117                 words = words.replace(/N'T /g, " N'T "); 
6118             }
6119             
6120             words = words.replace(/ ([Cc])an't /g, " $1an not ");
6121             words = words.replace(/ ([Cc])annot /g, " $1an not ");
6122             words = words.replace(/ ([Dd])idn't /g, " $1id not ");
6123             words = words.replace(/ ([CcWw])ouldn't /g, " $1ould not ");
6124             
6125 
6126             // "Nicole I. Kidman" gets tokenized as "Nicole I . Kidman"
6127             words = words.replace(/ ([A-Z]) \\./g, " $1. ");
6128             words = words.replace(/\\s+/g, SP);
6129             words = words.replace(/^\\s+/g, E);
6130             
6131             return trim(words).split(/\s+/); // DCH: fixed bug here, 6/3/12
6132             
6133         },
6134 
6135         
6136         // TODO: test and (probably) re-implement from RiTa (RiSplitter.java)
6137         /**
6138          *  Splits the 'text' into sentences (according to PENN Treebank conventions)
6139          *  
6140          *  @param {string} text the text to be split
6141          *  @param {string | regex} regex (optional) the pattern to be used for tozenization
6142          *  
6143          *  @returns {array} of sentences 
6144          */
6145         splitSentences : function(text, regex) {
6146 
6147             var arr = text.match(/(\S.+?[.!?])(?=\s+|$)/g);
6148 
6149             return (text.length && arr && arr.length) ? arr : [ text ];
6150             
6151         },
6152 
6153         /**
6154          * Returns true if and only if the string matches 'pattern'
6155          * 
6156          * @param {string} string string to test
6157          * @param {string | regex} pattern object containing regular expression
6158          * @returns {boolean} true if matched, else false
6159          */
6160         _regexMatch : function(string, pattern) {
6161             
6162             if (isNull(string) || isNull(pattern))
6163                 return false;
6164             
6165             if (typeof pattern === S)
6166                 pattern = new RegExp(pattern);
6167             
6168             return pattern.test(string);
6169             
6170         },
6171 
6172         /**
6173          * Replaces all matches of 'pattern' in the 'string' with 'replacement'
6174          * 
6175          * @param {string} string to test
6176          * @param {string | regex } pattern object containing regular expression
6177          * @param {string} replacement the replacement
6178          * @returns {string} with replacements or thestring on error
6179          */
6180         _regexReplace : function(string, pattern, replacement) {
6181             
6182             if (isNull(string) || isNull(pattern))
6183                 return E;
6184             if (typeof pattern === S)
6185                 pattern = new RegExp(pattern); // TODO: is this necessary?
6186             return string.replace(pattern, replacement);
6187             
6188         },
6189              
6190         /**
6191          * Returns true if 'input' is an abbreviation
6192          * 
6193          * @param {string} input
6194          * @param {boolean} caseSensitive (optional, default=false)
6195          * 
6196          * @returns {boolean} true if 'input' is an abbreviation
6197          */
6198         isAbbreviation : function(input, caseSensitive) {
6199             
6200             caseSensitive = caseSensitive || false;
6201             input = caseSensitive ? input : RiTa._titleCase(input);
6202             return inArray(this.ABBREVIATIONS, input);
6203             
6204         },
6205         
6206         /**
6207          * Returns true if sentence starts with a question word.
6208          * 
6209          * @param {string} sentence
6210          * 
6211          * @returns {boolean} true if 'sentence' starts with a question word.
6212          */
6213         isQuestion : function(sentence) {
6214             
6215             var sentenceArr = RiTa.tokenize((sentence));
6216             
6217             for (var i = 0; i < QUESTION_STARTS.length; i++) {
6218                 
6219                   if (equalsIgnoreCase(sentenceArr[0], QUESTION_STARTS[i]))
6220                     return true;
6221             }
6222             return false;
6223             
6224         },
6225 
6226         /**
6227          * Returns true if 'currentWord' is the final word of a sentence.
6228          * This is a simplified version of the OAK/JET sentence splitter method.
6229          * 
6230          * @param {string} currentWord
6231          * @param {string} nextWord
6232          * @returns {boolean} true if 'currentWord' is the final word of a sentence.
6233          */
6234         isSentenceEnd : function(currentWord, nextWord) {
6235 
6236             if ( !Type.is(currentWord,S) || !Type.is(nextWord,S) )
6237                 return false;
6238             
6239             var cw = currentWord.charAt(0), cWL = currentWord.length; 
6240             
6241             // token is a mid-sentence abbreviation (mainly, titles) --> middle of sent
6242             if (RiTa.isAbbreviation(currentWord))
6243               return false;
6244             
6245             if (cWL > 1 && cw.indexOf("`'\"([{<") != -1 && RiTa.isAbbreviation(currentWord.substring(1)))
6246               return false;
6247         
6248             if (cWL > 2 && ((currentWord.charAt(0) == '\'' 
6249               && currentWord.charAt(1) == '\'') || (currentWord.charAt(0) == '`' 
6250               && currentWord.charAt(1) == '`')) && RiTa.isAbbreviation(currentWord.substring(2)))
6251             {
6252               return false;
6253             }
6254             
6255             var nTL = nextWord.length,
6256                 currentToken0 = currentWord.charAt(cWL - 1), 
6257                 currentToken1 = (cWL > 1) ? currentWord.charAt(cWL - 2) : ' ', 
6258                 currentToken2 = (cWL > 2) ? currentWord.charAt(cWL - 3) : ' ',
6259                 nextToken0 = nextWord.charAt(0), 
6260                 nextToken1 = (nTL > 1) ? nextWord.charAt(1) : ' ',
6261                 nextToken2 = (nTL > 2) ? nextWord.charAt(2) : ' ';
6262         
6263             // nextToken does not begin with an upper case,
6264             // [`'"([{<] + upper case, `` + upper case, or < -> middle of sent.
6265             if (!  (nextToken0 == nextToken0.toUpperCase()
6266                 || (nextToken1 == nextToken1.toUpperCase() && nextToken0.indexOf("`'\"([{<") != -1)
6267                 || (nextToken2 == nextToken2.toUpperCase() && ((nextToken0 == '`' && nextToken1 == '`') 
6268                 || (nextToken0 == '\'' && nextToken1 == '\'')))
6269                 ||  nextWord == "_" || nextToken0 == '<'))
6270               return false;
6271         
6272             // ends with ?, !, [!?.]["'}>)], or [?!.]'' -> end of sentence
6273             if (currentToken0 == '?'
6274                 || currentToken0 == '!'
6275                 || (currentToken1.indexOf("?!.") != -1 && currentToken0.indexOf("\"'}>)") != -1)
6276                 || (currentToken2.indexOf("?!.") != -1 && currentToken1 == '\'' && currentToken0 == '\''))
6277               return true;
6278               
6279             // last char not "." -> middle of sentence
6280             if (currentToken0 != '.') return false;
6281         
6282             // Note: wont handle Q. / A. at start of sentence, as in a news wire
6283             //if (startOfSentence && (currentWord.equalsIgnoreCase("Q.") 
6284               //|| currentWord.equalsIgnoreCase("A.")))return true; 
6285             
6286             // single upper-case alpha + "." -> middle of sentence
6287             if (cWL == 2 && currentToken1 == currentToken1.toUpperCase())
6288               return false;
6289         
6290             // double initial (X.Y.) -> middle of sentence << added for ACE
6291             if (cWL == 4 && currentToken2 == '.'
6292                 && (currentToken1 == currentToken1.toUpperCase() && currentWord.charAt(0) == currentWord.charAt(0).toUpperCase() ))
6293               return false;
6294         
6295             // U.S. or U.N. -> middle of sentence
6296             //if (currentToken.equals("U.S.") || currentToken.equals("U.N."))
6297               //return false; // dch
6298               
6299             //if (Util.isAbbreviation(currentToken)) return false;
6300             
6301             // (for XML-marked text) next char is < -> end of sentence
6302            // if (nextToken0 == '<') return true;
6303             
6304             return true;
6305 
6306         },
6307         
6308         /**
6309          * Returns true if sentence starts with a w-question word, eg (who,what,why,where,when,etc.)
6310          * 
6311          * @param {string} sentence
6312          * @returns {boolean} true if sentence starts with a w-question word, eg (who,what,why,where,when,etc.)
6313          */
6314         isW_Question : function(sentence) {    
6315             var sentenceArr = RiTa.tokenize((sentence));
6316             for (var i = 0; i < W_QUESTION_STARTS.length; i++)
6317                 if (equalsIgnoreCase(sentenceArr[0], W_QUESTION_STARTS[i]))
6318                   return true;
6319             return false;
6320             
6321         },
6322 
6323         /**
6324          * Returns a randomly ordered array of unique integers from 0 to numElements. 
6325          * The size of the array will be numElements.
6326          * 
6327          * @param {number} numElements
6328          * @returns {array} unique integers from 0 to numElements. 
6329          */
6330         randomOrdering : function(numElements) {    
6331             
6332             if (!numElements || numElements < 1)// !isNum(numElements)) 
6333                 err("bad arg");
6334             
6335             var o = [];
6336             for ( var i = 0; i < numElements; i++) {
6337                 o.push(i);
6338             }
6339             
6340             // Array shuffle, from Jonas Raoni Soares Silva (http://jsfromhell.com/array/shuffle)
6341             for(var j, x, i = o.length; i; j = parseInt(Math.random() * i), x = o[--i], o[i] = o[j], o[j] = x){}
6342 
6343             return o;
6344             
6345         },
6346 
6347         /**
6348          * Removes and returns a random element from an array, returning
6349          * it and leaving the array 1 element shorter.
6350          * 
6351          * @param {array} arr
6352          * @returns {array} 
6353          */
6354         removeRandom : function(arr) { 
6355             
6356             var i = Math.floor((Math.random()*arr.length));
6357             remove(arr, i, i);
6358             return arr;
6359             
6360         },
6361             
6362         /**
6363          * Strips all punctuation from the given string
6364          * @param {string} text input
6365          * @param {array} chars (Optional) Characters to ignore
6366          * @returns {string} result
6367          */
6368         stripPunctuation : function(text) {    
6369 
6370             return (text === E) ? [E] : text.replace(PUNCTUATION_CLASS,E); // TODO: cache this?
6371             
6372         },
6373         
6374         // PUNCTUATION : "����`'""\",;:!?)([].#\"\\!@$%&}<>|+=-_\\/*{^",
6375         
6376         
6377         /**
6378          * Trims punctuation from each side of the token (does not trim whitespace or internal punctuation).
6379          * 
6380          * @param {string} text input
6381          * @returns {string} result
6382          */
6383         trimPunctuation : function(text) {
6384             
6385             // TODO: replace all this with 1 regex
6386 
6387             // from the front
6388             while (text.length > 0) {
6389                var c = text.charAt(0);
6390                if (!RiTa.isPunctuation(c)) 
6391                    break;
6392                text = text.substr(1);
6393             }
6394             
6395             // from the back
6396             while (text.length > 0) {
6397                 var c = text.charAt(text.length-1);
6398                 if (!RiTa.isPunctuation(c)) 
6399                     break;
6400                 text = text.substring(0, text.length-1);
6401              }
6402             return text;
6403 
6404             
6405         },
6406               
6407         /**
6408          * Returns true if every character of 'text' is a punctuation character
6409          * 
6410          * @param {string} text input
6411          * @returns {boolean} 
6412          */
6413         // TEST: PUNCTUATION : "����`'""\",;:!?)([].#\"\\!@$%&}<>|+=-_\\/*{^",
6414         isPunctuation : function(text) { 
6415             
6416             if (!text || !text.length) return false;
6417   
6418             return ONLY_PUNCT.test(text); 
6419             
6420         },
6421         
6422         /**
6423          * Returns true if any character of 'text' is a punctuation character
6424          * 
6425          * @param {string} text input
6426          * @returns {boolean}
6427          */
6428         // TEST: PUNCTUATION : "����`'""\",;:!?)([].#\"\\!@$%&}<>|+=-_\\/*{^",
6429         hasPunctuation : function(text) { 
6430             
6431             if (!text || !text.length) return false;
6432   
6433             return ONLY_PUNCT.test(text); 
6434         },
6435 
6436         /**
6437          * Returns a string containing all phonemes for the input text
6438          * 
6439          * @param {string | array} words to analyze
6440          * @returns {string}  e.g., "dh-ax-d-ao-g-r-ae-n-f-ae-s-t"
6441          */
6442         getPhonemes : function(words) {
6443 
6444             return RiString(words).analyze().get(RiTa.PHONEMES);
6445             
6446         },
6447 
6448         /**
6449          * Analyzes the given string and returns a new string containing the stresses
6450          *  for each syllable of the input text 
6451          * 
6452          * @param {string | array} words to analyze
6453          * 
6454          * @returns {string}  e.g., "01-0-1", with 1's meaning 'stressed', 
6455          *      and 0's meaning 'unstressed', 
6456          */
6457         getStresses : function(words) {
6458 
6459             return RiString(words).analyze().get(RiTa.STRESSES);
6460         },
6461 
6462         /**
6463          * Analyzes the given string, Returns a String containing the phonemes for each syllable of
6464          * each word of the input text,  delimited by dashes (phonemes) and spaces (words) 
6465          * 
6466          * @param {string | array} words words to analyze
6467          * 
6468          * @returns {string} e.g., "dh-ax d-ao-g r-ae-n f-ae-s-t" 
6469          *  for the 4 syllables of the phrase 'The dog ran fast'
6470          */
6471         getSyllables : function(words) {
6472 
6473             return RiString(words).analyze().get(RiTa.SYLLABLES);
6474 
6475         },
6476         
6477         /**
6478          * Returns the # of words in the object according to the default WordTokenizer.
6479          * 
6480          * @param {string} words the string to analyze
6481          * @returns {number}
6482          */
6483         getWordCount : function(words) {
6484             
6485             return RiTa.tokenize(words).length;
6486 
6487         },
6488         
6489         /**
6490          * Extracts base roots from a word by lower-casing it, then removing prefixes and suffixes. 
6491          * @param {string} word the verb to analyze
6492          * @param {string} type one of either 'Lancaster' (the default) or 'Porter', 
6493          *  to specifiy the stemming algorithm to use
6494          * @returns {string} the stemmed form of 'verb' according to the RiTa stemming rules.
6495          */
6496         stem : function(word, type) {
6497             
6498             type = type || 'Lancaster';  // CONSTANTS
6499             
6500             if (type != 'Lancaster' && type != 'Porter')
6501                 err('Bad stemmer type: '+type);
6502             
6503             var stemImpl = (type == 'Porter') ? Stemmer.stem_Porter : Stemmer.stem_Lancaster; 
6504             
6505             if (word.indexOf(SP) < 0) return stemImpl(word);
6506             
6507             // dump non-words - http://qaa.ath.cx/porter_js_demo.html
6508             word = word.replace(/[^\w]/g, ' ');
6509          
6510             // dump multiple white-space - http://qaa.ath.cx/porter_js_demo.html
6511             word = word.replace(/\s+/g, ' '); 
6512             
6513             var res = [], words = word.split(' ');
6514             
6515             for ( var i = 0; i < words.length; i++) {
6516                 
6517                 res.push(stemImpl(words[i]));
6518             }
6519             
6520             return res.join(SP);
6521         },
6522         
6523         /**
6524          * For convenience, provides implementations of some of Processing built-in 
6525          * method, e.g. size(), background(), etc. and backwards compatibility with
6526          * the original RiTa/Processing Java library
6527          * 
6528          * @param {boolean} true to enable compatibility, else false
6529          */
6530         p5Compatible : function(value) {
6531             
6532             if (!arguments.callee.setupAndDraw) {
6533                 
6534                 arguments.callee.setupAndDraw = function() {
6535                     if (typeof window.setup == F) setup();
6536                     if (typeof window.draw == F) RiText.loop();
6537                 }
6538             }
6539             
6540             if (value) {
6541                 
6542                 // alias for some P5 member functions 
6543                 RiText.prototype.fill       = RiText.prototype.color;
6544                 RiText.prototype.textAlign  = RiText.prototype.align;
6545                 RiText.prototype.textFont   = RiText.prototype.font;
6546                 RiText.prototype.textSize   = RiText.prototype.fontSize;
6547                 
6548                 // alias for some RiTa-java functions
6549                 RiText.prototype.setText    = RiText.prototype.text;
6550                 RiText.prototype.fadeColor  = RiText.prototype.colorTo;
6551                 RiText.prototype.fadeToText = RiText.prototype.textTo;
6552                 RiText.prototype.setColor   = RiText.prototype.color;
6553                 
6554                 // alias for RiTa-java static functions
6555                 RiText.setDefaultFont = RiText.defaultFont;
6556                 RiText.setDefaultColor = RiText.defaultColor;
6557                 RiText.setDefaultAlignment = RiText.defaultAlignment;
6558                 RiText.setCallbackTimer = RiText.timer;
6559                 
6560                 if (!hasProcessing) {
6561 
6562                     // add some common P5 global methods (sorry, namespace)
6563 
6564                     if (!window.line) window.line = RiText.line;
6565                     if (!window.size) window.size= RiText.size;
6566                     if (!window.width) window.width = RiText.width; // want the var
6567                     if (!window.height) window.height= RiText.height; // want the var
6568                     if (!window.createFont) window.createFont= RiText.createFont;
6569                     if (!window.background) window.background= RiText.background;
6570                     if (!window.random) window.random= RiText.random;
6571                     if (!window.RIGHT) window.RIGHT = RiText.RIGHT;
6572                     if (!window.LEFT) window.LEFT = RiText.LEFT;
6573                     if (!window.CENTER) window.CENTER = RiText.CENTER;
6574                     
6575                     window.onload = arguments.callee.setupAndDraw;
6576                 }
6577             }
6578             else { // not-compatible (clear extra stuff)
6579                 
6580                 delete RiText.prototype.fill;
6581                 delete RiText.prototype.textAlign;
6582                 delete RiText.prototype.textFont;
6583                 delete RiText.prototype.textSize;
6584                 
6585                 delete RiText.prototype.setColor;
6586                 delete RiText.prototype.setText;
6587                 delete RiText.prototype.fadeColor;
6588                 delete RiText.prototype.fadeToText;
6589                 
6590                 delete RiText.setDefaultFont;
6591                 delete RiText.setDefaultColor;
6592                 delete RiText.setDefaultAlignment;
6593                 delete RiText.setCallbackTimer;
6594                 
6595                 if (!hasProcessing)  {
6596                     
6597                     // are these checks needed?
6598                     if (window.line === RiText.line) delete window.line;
6599                     if (window.size === RiText.size) delete window.size;
6600                     if (window.width === RiText.width) delete window.width;
6601                     if (window.height === RiText.height) delete window.height;
6602                     if (window.createFont === RiText.createFont) delete window.createFont;
6603                     if (window.background === RiText.background) delete window.background;
6604                     if (window.random === RiText.random) delete window.random;
6605                     if (window.RIGHT === RiText.RIGHT) delete window.RIGHT;
6606                     if (window.LEFT === RiText.LEFT) delete window.LEFT;
6607                     if (window.CENTER === RiText.CENTER) delete window.CENTER;
6608                     
6609                     if (window.onload == arguments.callee.setupAndDraw)
6610                         delete window.onload;
6611                 }
6612             }
6613         },
6614         
6615         /**
6616          * Converts 'input' to Titlecase (1st letter upper, rest lower)
6617          */
6618         _titleCase : function(input) {
6619             
6620             if (!input || !input.length) return input;
6621             
6622             return input.substring(0,1).toUpperCase() + input.substring(1);
6623         }
6624         
6625     } // end RiTa object
6626 
6627     
6628     /////////////////////////////////////////////////////////////////////////
6629     // RiLetterToSound (adapted from FreeTTS text-to-speech)
6630     /////////////////////////////////////////////////////////////////////////
6631     
6632     var LetterToSound = makeClass();
6633     
6634     /**
6635      * Entry in file represents the total number of states in the file. This
6636      * should be at the top of the file. The format should be "TOTAL n" where n is
6637      * an integer value.
6638      */
6639     LetterToSound.TOTAL = "TOTAL";
6640     
6641     /**
6642      * Entry in file represents the beginning of a new letter index. This should
6643      * appear before the list of a new set of states for a particular letter. The
6644      * format should be "INDEX n c" where n is the index into the state machine
6645      * array and c is the character.
6646      */
6647     LetterToSound.INDEX = "INDEX";
6648     
6649     /**
6650      * Entry in file represents a state. The format should be "STATE i c t f"
6651      * where 'i' represents an index to look at in the decision string, c is the
6652      * character that should match, t is the index of the state to go to if there
6653      * is a match, and f is the of the state to go to if there isn't a match.
6654      */
6655     LetterToSound.STATE = "STATE";
6656     
6657     /**
6658      * Entry in file represents a final state. The format should be "PHONE p"
6659      * where p represents a phone string that comes from the phone table.
6660      */
6661     LetterToSound.PHONE = "PHONE";
6662     
6663     /**
6664      * If true, the state string is tokenized when it is first read. The side
6665      * effects of this are quicker lookups, but more memory usage and a longer
6666      * startup time.
6667      */
6668     LetterToSound.tokenizeOnLoad = true;
6669     
6670     /**
6671      * If true, the state string is tokenized the first time it is referenced. The
6672      * side effects of this are quicker lookups, but more memory usage.
6673      */
6674     LetterToSound.tokenizeOnLookup = false;
6675 
6676     /**
6677      * The 'window size' of the LTS rules.
6678      */
6679     LetterToSound.WINDOW_SIZE = 4;
6680 
6681     /** The list of phones that can be returned by the LTS rules.
6682     LetterToSound.phonemeTable = null;  */
6683     
6684     LetterToSound.prototype = {
6685         
6686         /**
6687          * @private
6688          */
6689         initialize : function() {
6690             
6691             /**
6692              * The indices of the starting points for letters in the state machine.
6693              */
6694             this.letterIndex = {};
6695             
6696             /**
6697              * An array of characters to hold a string for checking against a rule. This
6698              * will be reused over and over again, so the goal was just to have a single
6699              * area instead of new'ing up a new one for every word. The name choice is to
6700              * match that in Flite's <code>cst_lts.c</code>.
6701              */
6702            this.fval_buff = [];
6703     
6704             /**
6705              * The LTS state machine. Entries can be String or State. An ArrayList could
6706              * be used here -- I chose not to because I thought it might be quicker to
6707              * avoid dealing with the dynamic resizing.
6708              */
6709             this.stateMachine = null;
6710     
6711             /**
6712              * The number of states in the state machine.
6713              */
6714             this.numStates = 0;
6715             
6716             // verify that the lts rules are included
6717             if (!LetterToSound.RULES.length) throw Error("No LTS Rules found!");
6718             
6719             // add the rules to the object (static?)
6720             for ( var i = 0; i < LetterToSound.RULES.length; i++) {
6721                 
6722                 this.parseAndAdd(LetterToSound.RULES[i]);
6723             }
6724         },
6725         
6726         _createState : function(type, tokenizer) {
6727          
6728             if (type === LetterToSound.STATE)
6729             {
6730               var index = parseInt(tokenizer.nextToken());
6731               var c = tokenizer.nextToken();
6732               var qtrue = parseInt(tokenizer.nextToken());
6733               var qfalse = parseInt(tokenizer.nextToken());
6734               
6735               return new DecisionState(index, c.charAt(0), qtrue, qfalse);
6736             }
6737             else if (type === LetterToSound.PHONE)
6738             {
6739               return new FinalState(tokenizer.nextToken());
6740             }
6741             
6742             throw Error("Unexpected type: "+type);
6743         },
6744         
6745         /**
6746          * Creates a word from the given input line and add it to the state machine.
6747          * It expects the TOTAL line to come before any of the states.
6748          * 
6749          * @param line the line of text from the input file
6750          */
6751          parseAndAdd : function(line) {
6752              
6753           var tokenizer = new StringTokenizer(line, SP);
6754           var type = tokenizer.nextToken();
6755 
6756           if (type == LetterToSound.STATE || type == LetterToSound.PHONE)
6757           {
6758             if (LetterToSound.tokenizeOnLoad)
6759             {
6760               this.stateMachine[this.numStates] = this._createState(type, tokenizer);
6761             } 
6762             else
6763             {
6764               this.stateMachine[this.numStates] = line;
6765             }
6766             this.numStates++;
6767           } 
6768           else if (type==LetterToSound.INDEX)
6769           {
6770             var index = parseInt(tokenizer.nextToken());
6771             if (index != this.numStates)
6772             {
6773               throw Error("Bad INDEX in file.");
6774             } 
6775             else
6776             {
6777               var c = tokenizer.nextToken();
6778               this.letterIndex[c] = index;
6779               
6780             }
6781             //console.log(type+" : "+c+" : "+index + " "+this.letterIndex[c]);
6782           } 
6783           else if (type==LetterToSound.TOTAL)
6784           {
6785             this.stateMachine = [];
6786             this.stateMachineSize = parseInt(tokenizer.nextToken());
6787           }
6788         },
6789         
6790         /**
6791          * Calculates the phone list for a given word. If a phone list cannot be
6792          * determined, <code>[]</code> is returned. 
6793          * 
6794          * @param {string | array } input the word or words to find
6795          * 
6796          * @return {string} phones for word, separated by delim,
6797          *   or <code>empty string</code>
6798          */
6799         getPhones : function(input, delim) {
6800             
6801             var ph, result = []; 
6802             
6803             delim = delim || '-';
6804             
6805             if (Type.is(input, S)) {
6806                 
6807                 if (!input.length) return E; 
6808                 
6809                 input = RiTa.tokenize(input);
6810             }
6811   
6812             for (var i = 0; i < input.length; i++) {
6813                 
6814                 ph = this._computePhones(input[i]);
6815                 result[i] = ph ? ph.join(delim) : E;
6816             }
6817             
6818             return result.join(delim);  
6819         },
6820 
6821         /**
6822          * Calculates the phone list for a given word. If a phone list cannot be
6823          * determined, <code>null</code> is returned. 
6824          * 
6825          * @param word the word or words to find
6826          * 
6827          * @return array of phones for word or <code>null</code>
6828          */
6829         _computePhones : function(word) {
6830             
6831           var dig, phoneList = [], full_buff, tmp, currentState, startIndex, stateIndex, c;
6832           
6833           if (!word || !word.length || RiTa.isPunctuation(word))
6834               return null;
6835           
6836           word = word.toLowerCase();
6837           
6838           if (isNum(word)) {
6839               
6840               word = (word.length>1) ? word.split(E) : [word];
6841               
6842               for (var i = 0; i < word.length; i++) {
6843                   
6844                   dig = parseInt(word[i]);
6845                   if (dig < 0 || dig > 9)
6846                       throw Error("Attempt to pass multi-digit number to LTS: '"+word+"'");
6847                   
6848                   phoneList.push(Phones.digits[dig]);
6849               }
6850               
6851               return phoneList;
6852           }
6853     
6854           // Create "000#word#000"
6855           tmp = "000#"+word.trim()+"#000", full_buff = tmp.split("");
6856           
6857           // For each character in the word, create a WINDOW_SIZE
6858           // context on each size of the character, and then ask the
6859           // state machine what's next. Its magic
6860           for (var pos = 0; pos < word.length; pos++) {
6861               
6862             for (var i = 0; i < LetterToSound.WINDOW_SIZE; i++) {
6863                 
6864               this.fval_buff[i] = full_buff[pos + i];
6865               this.fval_buff[i + LetterToSound.WINDOW_SIZE] = full_buff[i + pos + 1 + LetterToSound.WINDOW_SIZE];
6866             }
6867             
6868             c = word.charAt(pos);
6869             startIndex = this.letterIndex[c];
6870             
6871             // must check for null here, not 0
6872             if (startIndex==null) throw Error("No LTS index for character: '"+
6873                 c + "', isDigit=" + isNum(c) + ", isPunct=" + RiTa.isPunctuation(c));
6874 
6875             stateIndex = parseInt(startIndex);
6876             
6877             currentState = this.getState(stateIndex);
6878             
6879             while (! (currentState instanceof FinalState) ) {
6880                 
6881               stateIndex = currentState.getNextState(this.fval_buff);
6882               currentState = this.getState(stateIndex);
6883             }
6884             
6885             currentState.append(phoneList);
6886           }
6887           
6888           return phoneList;
6889         },
6890         
6891 
6892 //        /**
6893 //         * Makes a character array that looks like "000#word#000".
6894 //         * 
6895 //         * @param word the original word
6896 //         * 
6897 //         * @return the padded word
6898 //         */
6899 //        getFullBuff : function( word) {
6900 //            
6901 //          var full_buff = [], WINDOW_SIZE = LetterToSound.WINDOW_SIZE;
6902 //
6903 //          // Make full_buff look like "000#word#000"
6904 //          
6905 //          for (var i = 0; i < (WINDOW_SIZE - 1); i++)
6906 //            full_buff[i] = '0';
6907 //          
6908 //          full_buff[WINDOW_SIZE - 1] = '#';
6909 //          
6910 //          word.getChars(0, word.length(), full_buff, WINDOW_SIZE);
6911 //          
6912 //          for (var i = 0; i < (WINDOW_SIZE - 1); i++)
6913 //          {
6914 //            full_buff[full_buff.length - i - 1] = '0';
6915 //          }
6916 //          full_buff[full_buff.length - WINDOW_SIZE] = '#';
6917 //          
6918 //          return full_buff;
6919 //        },
6920 
6921         getState : function(i) {
6922 
6923             if (Type.is(i,N)) {
6924                 
6925                 var state = null;
6926                 
6927                 // WORKING HERE: this check should fail :: see java
6928                 if (Type.is(this.stateMachine[i],S)) {
6929                     
6930                   state = this.getState(this.stateMachine[i]);
6931                   if (LetterToSound.tokenizeOnLookup)
6932                       this.stateMachine[i] = state;
6933                 } 
6934                 else
6935                   state = this.stateMachine[i];
6936          
6937                 return state;
6938             }
6939             else {
6940                 
6941                 var tokenizer = new StringTokenizer(i, " ");
6942                 return this.getState(tokenizer.nextToken(), tokenizer);
6943             }
6944         }   
6945     }
6946     
6947     /////////////////////////////////////////////////////////////////////////
6948     // DecisionState
6949     /////////////////////////////////////////////////////////////////////////
6950     
6951     var DecisionState = makeClass();
6952     
6953     DecisionState.TYPE = 1;
6954     
6955     DecisionState.prototype = {
6956     
6957         /**
6958          * Class constructor.
6959          * 
6960          * @param index
6961          *          the index into a string for comparison to c
6962          * @param c
6963          *          the character to match in a string at index
6964          * @param qtrue
6965          *          the state to go to in the state machine on a match
6966          * @param qfalse
6967          *          the state to go to in the state machine on no match
6968          */
6969         //    char c, var index, var qtrue, var qfalse;
6970         initialize : function(index, c, qtrue, qfalse) {
6971             
6972             this.c = c;
6973             this.index = index;
6974             this.qtrue = qtrue;
6975             this.qfalse = qfalse;
6976         },
6977         
6978         type : function() {
6979             
6980             return "DecisionState";
6981         },
6982     
6983         /**
6984          * Gets the next state to go to based upon the given character sequence.
6985          * 
6986          * @param chars the characters for comparison
6987          * 
6988          * @returns an index into the state machine.
6989          */
6990         //public var getNextState(char[] chars)
6991         getNextState : function(chars) {
6992             
6993           return (chars[this.index] == this.c) ? this.qtrue : this.qfalse;
6994         },
6995     
6996         /**
6997          * Outputs this <code>State</code> as though it came from the text input
6998          * file. 
6999          */
7000         toString : function() {
7001           return this.STATE + " " + this.index + " " + this.c + " " + this.qtrue + " " + this.qfalse;
7002         }, 
7003     
7004         /**
7005          * Writes this <code>State</code> to the given output stream.
7006          * 
7007          * @param dos
7008          *          the data output stream
7009          * 
7010          * @throws IOException
7011          *           if an error occurs
7012     
7013         writeBinary : function(dos)
7014         {
7015     //      dos.writeInt(TYPE);
7016     //      dos.writeInt(index);
7017     //      dos.writeChar(c);
7018     //      dos.writeInt(qtrue);
7019     //      dos.writeInt(qfalse);
7020         }     */
7021     
7022         /**
7023          * Loads a <code>DecisionState</code> object from the given input stream.
7024          * 
7025          * @param dis
7026          *          the data input stream
7027          * @return a newly constructed decision state
7028          * 
7029          * @throws IOException
7030          *           if an error occurs
7031          
7032         public static State loadBinary(DataInputStream dis) throws IOException
7033         {
7034           var index = dis.readInt();
7035           char c = dis.readChar();
7036           var qtrue = dis.readInt();
7037           var qfalse = dis.readInt();
7038           return new DecisionState(index, c, qtrue, qfalse);
7039         }*/
7040     
7041         /**
7042          * Compares this state to another state for debugging purposes.
7043          * 
7044          * @param other
7045          *          the other state to compare against
7046          * 
7047          * @return true if the states are equivalent
7048          */
7049         compare : function(other) {
7050             
7051           if (other instanceof DecisionState)
7052           {
7053             var otherState = other;
7054             return index == otherState.index && c == otherState.c
7055                 && qtrue == otherState.qtrue && qfalse == otherState.qfalse;
7056           }
7057           return false;
7058         }
7059         
7060     }// end DecisionState
7061     
7062     // ///////////////////////////////////////////////////////////////////////
7063     // FinalState
7064     // ///////////////////////////////////////////////////////////////////////
7065     
7066     var FinalState = makeClass();
7067     
7068     FinalState.TYPE = 2;
7069     
7070     FinalState.prototype = {
7071         
7072         /**
7073          * Class constructor. The string "epsilon" is used to indicate an empty list.
7074          * @param {} phones the phones for this state
7075          */
7076         initialize : function(phones) {
7077             
7078             this.phoneList = [];
7079             
7080             if (phones===("epsilon"))
7081             {
7082                 this.phoneList = null;
7083             } 
7084             else if (Type.is(phones,A)) {
7085                 
7086                 this.phoneList = phones;
7087             }
7088             else
7089             {
7090               var i = phones.indexOf('-');
7091               if (i != -1)
7092               {
7093                   this.phoneList[0] = phones.substring(0, i); 
7094                   this.phoneList[1] = phones.substring(i + 1);
7095               } 
7096               else
7097               {
7098                   this.phoneList[0] = phones;
7099               }
7100             }
7101         },
7102         
7103         type : function() {
7104             
7105             return "FinalState";
7106         },
7107     
7108         /**
7109          * Appends the phone list for this state to the given <code>ArrayList</code>.
7110          * @param {array} array the array to append to
7111          */
7112         append : function(array) {
7113             
7114             if (!this.phoneList) return;
7115     
7116             for (var i = 0; i < this.phoneList.length; i++)
7117                 array.push(this.phoneList[i]);
7118         },
7119     
7120         /**
7121          * Outputs this <code>State</code> as though it came from the text input
7122          * file. The string "epsilon" is used to indicate an empty list.
7123          * 
7124          * @return a <code>String</code> describing this <code>State</code>
7125          */
7126         toString : function() {
7127             
7128           if (!this.phoneList)
7129           {
7130             return LetterToSound.PHONE + " epsilon";
7131           } 
7132           else if (this.phoneList.length == 1)
7133           {
7134             return LetterToSound.PHONE + " " + this.phoneList[0];
7135           } 
7136           else
7137           {
7138             return LetterToSound.PHONE + " " + this.phoneList[0] + "-" + this.phoneList[1];
7139           }
7140         },
7141     
7142         /**
7143          * Compares this state to another state for debugging purposes.
7144          * 
7145          * @param other
7146          *          the other state to compare against
7147          * 
7148          * @return <code>true</code> if the states are equivalent
7149          */
7150         compare : function(other)
7151         {
7152           if (other instanceof FinalState)
7153           {
7154             var otherState = other;
7155             if (!phoneList)
7156             {
7157               return (otherState.phoneList == null);
7158             } 
7159             else
7160             {
7161               for (var i = 0; i < phoneList.length; i++)
7162               {
7163                 if (!phoneList[i].equals(otherState.phoneList[i]))
7164                 {
7165                   return false;
7166                 }
7167               }
7168               return true;
7169             }
7170           }
7171           return false;
7172         },
7173     
7174         /**
7175          * Writes this state to the given output stream.
7176          * 
7177          * @param dos
7178          *          the data output stream
7179          * 
7180          * @throws IOException
7181          *           if an error occurs
7182        
7183         public void writeBinary : function(DataOutputStream dos) throws IOException
7184         {
7185           dos.writeInt(TYPE);
7186           if (phoneList == null)
7187           {
7188             dos.writeInt(0);
7189           } else
7190           {
7191             dos.writeInt(phoneList.length);
7192             for (var i = 0; i < phoneList.length; i++)
7193             {
7194               dos.writeInt(phonemeTable.indexOf(phoneList[i]));
7195             }
7196           }
7197         }  */
7198     
7199         /**
7200          * Loads a FinalState object from the given input stream
7201          * 
7202          * @param dis
7203          *          the data input stream
7204          * 
7205          * @return a newly constructed final state
7206          * 
7207          * @throws IOException
7208          *           if an error occurs
7209      
7210         public static State loadBinary : function(DataInputStream dis) throws IOException
7211         {
7212           String[] phoneList;
7213           var phoneListLength = dis.readInt();
7214     
7215           if (phoneListLength == 0)
7216           {
7217             phoneList = null;
7218           } else
7219           {
7220             phoneList = new String[phoneListLength];
7221           }
7222           for (var i = 0; i < phoneListLength; i++)
7223           {
7224             var index = dis.readInt();
7225             phoneList[i] = (String) phonemeTable.get(index);
7226           }
7227           return new FinalState(phoneList);
7228         }    */
7229       }
7230     
7231     /////////////////////////////////////////////////////////////////////////
7232     //StringTokenizer
7233     /////////////////////////////////////////////////////////////////////////
7234     
7235     var StringTokenizer = makeClass();  
7236     
7237     StringTokenizer.prototype = {
7238     
7239         initialize : function(str, delim) {
7240             
7241             this.idx = 0;
7242             this.text = str;
7243             this.delim = delim || " ";
7244             this.tokens = str.split(delim);
7245         },
7246         
7247         nextToken : function() {
7248             
7249             return (this.idx < this.tokens.length) ? this.tokens[this.idx++] : null;
7250         }
7251     }
7252     
7253     ////////////////////////// PRIVATE CLASSES ///////////////////////////////
7254 
7255     
7256     // ///////////////////////////////////////////////////////////////////////
7257     // RiText_Canvas 2D-Renderer
7258     // ///////////////////////////////////////////////////////////////////////
7259     
7260     /**
7261      * @name RiText_Canvas
7262      * @class
7263      * @private
7264      */
7265     var RiText_Canvas = makeClass();
7266     
7267     RiText_Canvas.prototype = {
7268 
7269         initialize : function(ctx) {
7270             this.ctx = ctx;
7271         },
7272         
7273         _getGraphics : function() {
7274             return this.ctx;
7275         },
7276         
7277         _pushState : function() {
7278             this.ctx.save();
7279             return this;
7280         },
7281         
7282         _popState : function() {
7283             this.ctx.restore();
7284             return this;
7285         },
7286         
7287         _background : function(r,g,b,a) {
7288             this._fill(r,g,b,a);
7289             this.ctx.fillRect(0,0,this.ctx.canvas.width,this.ctx.canvas.height);
7290         },
7291 
7292         _scale : function(sx, sy) {
7293             this.ctx.scale(sx, sy, 1);
7294         },
7295         
7296         _translate : function(tx, ty) {
7297             this.ctx.translate(tx, ty, 0);
7298         },
7299         
7300         _rotate : function(zRot) {
7301             this.ctx.rotate(0,0,zRot);
7302         },
7303         
7304         _line : function(x1,y1,x2,y2,lw) {
7305             
7306       
7307             lw = lw || 1; // canvas hack for crisp lines
7308             x1 = Math.round(x1), x2 = Math.round(x2);
7309             y1 = Math.round(y1), y2 = Math.round(y2);
7310             
7311             //log('line: ('+(x1)+","+(y1)+","+(x2)+","+(y2)+")");
7312             
7313             this.ctx.save();
7314             
7315             if (x1 === x2) {
7316                 if (y1 > y2) {
7317                     var swap = y1;
7318                     y1 = y2;
7319                     y2 = swap;
7320                 }
7321                 y2++;
7322                 if (lw % 2 === 1)
7323                     this.ctx.translate(0.5, 0);
7324             } 
7325             else if (y1 === y2) {
7326                 if (x1 > x2) {
7327                     var swap = x1;
7328                     x1 = x2;
7329                     x2 = swap;
7330                 }
7331                 x2++;
7332                 if (lw % 2 === 1) 
7333                     this.ctx.translate(0, 0.5);
7334             }
7335             
7336             
7337             this.ctx.beginPath();
7338             this.ctx.moveTo(x1 || 0, y1 || 0);
7339             this.ctx.lineTo(x2 || 0, y2 || 0);
7340             this.ctx.lineWidth = lw;
7341             this.ctx.stroke();
7342             
7343             this.ctx.restore();
7344         },
7345         
7346         _rect : function(x,y,w,h) {
7347   
7348             this._line(x,y,x+w,y);
7349             this._line(x,y+h,x+w,y+h);
7350             this._line(x,y,x,y+h);
7351             this._line(x+w,y,x+w,y+h)
7352 
7353             // TODO: add test with filled bounding boxes and check
7354             this.ctx.fillRect(x+1,y+1,w-1,h-1); // [hack] 
7355         },
7356         
7357         _size : function(w, h, renderer) {
7358             
7359             
7360             this.ctx.canvas.width = w;
7361             this.ctx.canvas.height = h;
7362             if (renderer) console.warn("Renderer arg ignored");
7363         },
7364         
7365         _createFont : function(fontName, fontSize, fontLeading) {
7366             
7367             var font = {
7368                 name:       fontName, 
7369                 size:       fontSize || RiText.defaults.font.size, 
7370                 leading:    fontLeading || (fontSize * RiText.defaults.leadingFactor) 
7371             };
7372             return font;
7373         },
7374         
7375         _width : function() {
7376             
7377             return this.ctx.canvas.width || 200;
7378         },
7379         
7380         _height : function() {
7381             
7382             return this.ctx.canvas.height || 200;
7383         },
7384         
7385         _fill : function(r,g,b,a) {
7386             
7387             this.ctx.fillStyle="rgba("+Math.round(r)+","+Math.round(g)+","+Math.round(b)+","+(a/255)+")";
7388         },
7389         
7390         _stroke : function(r,g,b,a) {
7391             
7392             this.ctx.strokeStyle = Type.is(r,S) ? r : "rgba("+Math.round(r)
7393                 +","+Math.round(g)+","+Math.round(b)+","+(a/255)+")";
7394         },
7395         
7396         _textAlign : function(align) {
7397             
7398             switch (align) {
7399                 case RiText.LEFT:
7400                     this.ctx.textAlign = 'left';
7401                     break;
7402                 case RiText.CENTER:
7403                     this.ctx.textAlign = 'center';
7404                     break;
7405                 case RiText.RIGHT:
7406                     this.ctx.textAlign = 'right';
7407                     break;
7408             }
7409         },
7410         
7411         _type : function() { return "Canvas"; },
7412         
7413         // only applies the font to the context!
7414         _textFont : function(fontObj) {
7415             if (!Type.is(fontObj,O))
7416                 err("_textFont expects object, but got: "+fontObj);
7417             this.ctx.font = "normal "+fontObj.size+"px "+fontObj.name;
7418         },
7419         
7420         _textAscent : function(rt) {
7421             return this._getMetrics(rt).ascent;
7422         },
7423         
7424         _textDescent : function(rt) {
7425             return this._getMetrics(rt).descent;
7426 
7427         },
7428 
7429         // should operate on the RiText itself (take rt as arg?)
7430         _text : function(str, x, y) {
7431             //log("text: "+str+","+x+","+y+","+this.ctx.textAlign);
7432             this.ctx.baseline = 'alphabetic';
7433             this.ctx.fillText(str, x, y);
7434             //this.ctx.strokeText(str, x, y);
7435         },
7436 
7437         _textWidth : function(fontObj, str) {
7438             this.ctx.save();
7439             this._textFont(fontObj);
7440             var tw = this.ctx.measureText(str).width;
7441             this.ctx.restore();
7442             return tw;
7443         },
7444 
7445         _textHeight : function(rt) {
7446             return this._getBoundingBox(rt).height;
7447         },
7448         
7449         //  hack to deal with lack of metrics in the canvas
7450         _getBoundingBox : function(rt) {
7451 
7452             this.ctx.save();
7453             this._textFont(rt._font);
7454             var w = this.ctx.measureText(rt.text()).width;
7455             var metrics = this._getMetrics(rt);
7456             //log('[CTX] ascent='+metrics.ascent+' descent='+metrics.descent+" h="+(metrics.ascent+metrics.descent));
7457             this.ctx.restore();
7458             return { x: 0, y: metrics.descent-1, width: w, height: metrics.ascent+metrics.descent+1 };
7459         },
7460 
7461         _getMetrics : function(rt) {// does this need font.size? no
7462 
7463             var fontObj = rt._font, str = rt.text();
7464             
7465             //log('_getMetrics:'+fontObj+","+str);
7466             var text = $('<span style="font-size: '+fontObj.size+'; font-family: '+fontObj.name+'">'+str+'</span>');
7467             var block = $('<div style="display: inline-block; width: 1px; height: 0px;"></div>');
7468 
7469             var div = $('<div></div>');
7470             div.append(text, block);
7471 
7472             var body = $('body');
7473             body.append(div);
7474 
7475             try {
7476                 var result = {};
7477 
7478                 block.css({ verticalAlign: 'baseline' });
7479                 result.ascent = block.offset().top - text.offset().top + 1;
7480 
7481                 block.css({ verticalAlign: 'bottom' });
7482                 var height = block.offset().top - text.offset().top;
7483 
7484                 result.descent = (height - result.ascent);
7485                 result.ascent -=  result.descent;
7486 
7487             } finally {
7488                 div.remove();
7489             }
7490 
7491             return result;
7492         },
7493         
7494         toString : function() {
7495             return "RiText_"+this._type;
7496         }
7497         
7498     }        
7499         
7500     // ////////////////////////////////////////////////////////////
7501     // TextNode
7502     // ////////////////////////////////////////////////////////////
7503     
7504     /**
7505      * @name TextNode
7506      * @class
7507      * @private
7508      */
7509     var TextNode = makeClass();
7510     
7511     TextNode.ignoreCase = true;
7512     
7513     TextNode.prototype = {
7514 
7515         initialize : function(parent, token) {
7516             
7517             this.count = 0;
7518             this.children = {};
7519             this.parent = parent;
7520             this.token = token;
7521         },
7522         
7523         selectChild : function(regex, probabalisticSelect) {
7524             
7525             var ps = probabalisticSelect || true;
7526             return this.children ? this._select(this.childNodes(regex), ps) : null;
7527         },
7528         
7529         _select : function (arr, probabalisticSelect) {
7530             
7531             if (!arr) throw TypeError("bad arg to '_select()'");
7532             
7533             probabalisticSelect = probabalisticSelect || false;
7534             
7535             return (probabalisticSelect ? this._probabalisticSelect(arr) 
7536                 : arr[Math.floor((Math.random()*arr.length))]);    
7537         },
7538         
7539         _probabalisticSelect : function(arr)  {    
7540             
7541             if (!arr) throw TypeError("bad arg to '_probabalisticSelect()'");
7542             
7543             //L("RiTa.probabalisticSelect("+c+", size="+c.size()+")");
7544             if (!arr.length) return null;
7545             if (arr.length == 1) return arr[0];
7546 
7547             // select from multiple options based on frequency
7548             var pTotal = 0, selector = Math.random();
7549             for ( var i = 0; i < arr.length; i++) {
7550                 
7551                 pTotal += arr[i].probability();
7552                 if (selector < pTotal)
7553                     return arr[i];
7554             }
7555             err("Invalid State in RiTa.probabalisticSelect()");   
7556         },
7557 
7558         addChild : function(newToken, initialCount) {
7559 
7560           initialCount = initialCount || 1;
7561 
7562           var key = this._key(newToken), node = this.children[key];
7563 
7564           //  add first instance of this token 
7565           if (!node) {
7566             node = new TextNode(this, newToken);
7567             node.count = initialCount;
7568             this.children[key] = node;   
7569           }
7570           else {         
7571             node.count++;
7572           }
7573           
7574           return node;
7575         },
7576         
7577         asTree : function(sort) {
7578             
7579           var s = this.token+" ";
7580           if (!this.isRoot()) 
7581             s+= "("+this.count+")->"; 
7582           s += "{";
7583           if (!this.isLeaf())
7584             return this.childrenToString(this, s, 1, sort);
7585           return s + "}";
7586         },
7587         
7588         isRoot : function() {
7589             
7590             return isNull(this.parent);
7591         },
7592         
7593         isLeaf : function() {
7594             
7595             return this.childCount() == 0;
7596         },
7597         
7598         probability : function() {
7599             
7600             //log('probability: '+ this.count+'/'+this.siblingCount());
7601             return this.count/this.siblingCount();
7602         },
7603         
7604 
7605         childNodes : function(regex) {
7606             
7607             if (!this.children) return [];
7608             
7609             regex = Type.is(regex,S) ? new RegExp(regex) : regex;
7610             
7611             var res = [];
7612             for (var k in this.children)  {
7613                 var node = this.children[k];
7614                 if (!regex || (node && node.token && node.token.search(regex)>-1)) {
7615                     res.push(node);
7616                 }
7617             }
7618             
7619             return res;
7620         },        
7621         
7622         /**
7623          * Returns the number of siblings for this node (Note: is case-sensitive)
7624          */
7625         siblingCount : function() {
7626             
7627           if (this.isRoot()) err("Illegal siblingCount on ROOT!");
7628           
7629           if (!this.parent) err("Null parent for: "+this.token);
7630           
7631           return this.parent.childCount();
7632         },
7633         
7634         /**
7635          * Returns the number of unique children (Note: is case-sensitive)
7636          */
7637         uniqueCount : function() {
7638         
7639             var sum = 0;
7640             for (var k in this.children) sum++;
7641             return sum;
7642         },
7643         
7644          /**
7645          * Returns the number of children for this node (Note: is case-sensitive)
7646          */
7647         childCount : function() {
7648             
7649             //return this.childNodes().length;
7650             
7651             if (!this.children) return 0;
7652             
7653             var sum = 0;
7654             for (var k in this.children) {
7655                 if (k && this.children[k])
7656                     sum += this.children[k].count;
7657             }
7658             
7659             return sum;
7660         },        
7661         
7662         
7663         /*
7664          * takes node or string, returns node
7665          */
7666         lookup : function(obj) {   
7667             
7668           if (!obj) return null;
7669           
7670           obj = (typeof obj != S && obj.token) ? obj.token : obj;
7671           
7672           //log(this.token+".lookup("+this._key(obj)+")");
7673           
7674           return obj ? this.children[this._key(obj)] : null; 
7675         },
7676         
7677     
7678         _key : function(str) {
7679 
7680             return (str && TextNode.ignoreCase) ? str.toLowerCase() : str;
7681         },
7682 
7683         childrenToString : function(textNode, str, depth, sort)  {
7684 
7685           var mn = textNode, l = [], node = null, indent = "\n";
7686           
7687           sort = sort || false;
7688           
7689           for (var k in textNode.children) {
7690               l.push(textNode.children[k]);
7691           }
7692           
7693           if (!l.length) return str;
7694           
7695           if (sort) l.sort();
7696                     
7697           for (var j = 0; j < depth; j++) 
7698             indent += "  ";
7699           
7700           for (var i = 0; i < l.length; i++) {
7701               
7702             node = l[i];
7703             
7704             if (!node) break;
7705             
7706             var tok = node.token;      
7707             if (tok) {         
7708               (tok == "\n") && (tok = "\\n");
7709               (tok == "\r") && (tok = "\\r");
7710               (tok == "\t") && (tok = "\\t");
7711               (tok == "\r\n") && (tok = "\\r\\n");
7712             }
7713             
7714             str += indent +"'"+tok+"'";
7715             
7716             if (!node.count) 
7717               err("ILLEGAL FREQ: "+node.count+" -> "+mn.token+","+node.token);
7718             
7719             if (!node.isRoot())
7720               str += " ["+node.count + ",p=" +//formatter.format
7721                 (node.probability().toFixed(3)) + "]->{"; 
7722             
7723             if (node.children)
7724               str = this.childrenToString(node, str, depth+1, sort);  
7725             else 
7726                 str += "}";
7727           }
7728           
7729           indent = "\n";
7730           for (var j = 0; j < depth-1; j++) 
7731             indent += "  ";
7732           
7733           return str + indent + "}";
7734         },
7735         
7736         toString : function() {
7737             return '[ '+this.token+" ("+this.count+'/'+this.probability().toFixed(3)+'%)]';
7738         } 
7739     }
7740 
7741     // ////////////////////////////////////////////////////////////
7742     // Conjugator
7743     // ////////////////////////////////////////////////////////////
7744     
7745 
7746     /**
7747      * @name Conjugator
7748      * @class
7749      * @private
7750      */
7751     var Conjugator = makeClass();
7752     
7753     Conjugator.prototype = {
7754 
7755         initialize : function() {
7756             
7757             // TODO: get rid of these and make static method ?
7758             
7759             this.perfect = this.progressive = this.passive = this.interrogative = false;
7760             this.tense = RiTa.PRESENT_TENSE;
7761             this.person = RiTa.FIRST_PERSON;
7762             this.number = RiTa.SINGULAR;
7763             this.form = RiTa.NORMAL;
7764             this.head = "";
7765 
7766         },
7767 
7768         // Conjugates the verb based on the current state of the conjugator.
7769         // !@# Removed (did not translate) incomplete/non-working java
7770         // implementation of modals handling.
7771         // !@# TODO: add handling of past tense modals.
7772         conjugate : function(verb, args) {
7773 
7774             var s = E, actualModal = null, conjs = [], frontVG = verb, verbForm;
7775             
7776             if (!verb || !verb.length) return E;
7777             
7778             if (!args) return verb;
7779 
7780             // ------------------ handle arguments ------------------
7781             
7782             args.number && (this.number = args.number);
7783             
7784             args.person && (this.person = args.person);
7785             
7786             args.tense && (this.tense = args.tense);
7787             
7788             args.form && (this.form = args.form);
7789             
7790             args.passive && (this.person = args.passive);
7791             
7792             args.progressive && (this.progressive = args.progressive);
7793             
7794             args.perfect && (this.perfect = args.perfect);
7795             
7796             // ----------------------- start ---------------------------
7797             if (this.form == RiTa.INFINITIVE) {
7798                 actualModal = "to";
7799             }
7800 
7801             if (this.tense == RiTa.FUTURE_TENSE) {
7802                 actualModal = "will";
7803             }
7804 
7805             if (this.passive) {
7806                 this.conjs.push(this.getPastParticiple(this.frontVG));
7807                 this.frontVG = "be"; // Conjugate this ?
7808             }
7809 
7810             if (this.progressive) {
7811                 conjs.push(this.getPresentParticiple(frontVG));
7812                 frontVG = "be"; // Conjugate this ?
7813             }
7814 
7815             if (this.perfect) {
7816                 conjs.push(this.getPastParticiple(frontVG));
7817                 frontVG = "have";
7818             }
7819 
7820             if (actualModal) {
7821                 // log("push: "+frontVG);
7822                 conjs.push(frontVG);
7823                 frontVG = null;
7824             }
7825 
7826             // Now inflect frontVG (if it exists) and push it on restVG
7827             if (frontVG) {
7828 
7829                 if (this.form === RiTa.GERUND) { // gerund - use ING form
7830                     
7831                     var pp = this.getPresentParticiple(frontVG);
7832 
7833                     // !@# not yet implemented! ??? WHAT?
7834                     conjs.push(pp);
7835                     
7836                 }
7837                 else if (this.interrogative && !(verb == "be") && conjs.length < 1) {
7838 
7839                     conjs.push(frontVG);
7840                     
7841                 }
7842                 else {
7843 
7844                     verbForm = this.getVerbForm(frontVG, this.tense, this.person, this.number);
7845                     conjs.push(verbForm);
7846                 }
7847             }
7848 
7849             // add modal, and we're done
7850             actualModal && conjs.push(actualModal);
7851 
7852             var s = E;
7853             for ( var i = 0; i < conjs.length; i++) {
7854                 
7855                 s = conjs[i] + " " + s;
7856             }
7857 
7858             // !@# test this
7859             endsWith(s, "peted") && err("Unexpected output: " + this.toString());
7860 
7861             return trim(s);
7862         },
7863 
7864         checkRules : function(ruleSet, verb) {
7865 
7866             var res, name = ruleSet.name, rules = ruleSet.rules, defRule = ruleSet.defaultRule || null;
7867             
7868             if (!rules) err("no rule: "+ruleSet.name+' of '+verb);
7869             
7870             if (inArray(MODALS, verb)) return verb;
7871 
7872             for ( var i = 0; i < rules.length; i++) {
7873 
7874                 //log("checkRules2("+name+").fire("+i+")="+rules[i].regex);
7875                 if (rules[i].applies(verb)) {
7876 
7877                     var got = rules[i].fire(verb);
7878 
7879 //log("HIT("+name+").fire("+i+")="+rules[i].regex+"_returns: "+got);
7880                     return got;
7881                 }
7882             }
7883 
7884             if (ruleSet.doubling || inArray(VERB_CONS_DOUBLING, verb)) {
7885 
7886                 verb = this.doubleFinalConsonant(verb);
7887             }
7888 
7889             res = defRule.fire(verb);
7890 
7891             // log("checkRules3("+name+").returns: "+res);
7892             return res;
7893         },
7894 
7895         doubleFinalConsonant : function(word) {
7896             var letter = word.charAt(word.length - 1);
7897             return word + letter;
7898         },
7899 
7900         getPast : function(verb, pers, numb) {
7901 
7902             if (verb.toLowerCase() == "be") {
7903 
7904                 switch (numb) {
7905 
7906                 case RiTa.SINGULAR:
7907 
7908                     switch (pers) {
7909 
7910                     case RiTa.FIRST_PERSON:
7911                         break;
7912 
7913                     case RiTa.THIRD_PERSON:
7914                         return "was";
7915 
7916                     case RiTa.SECOND_PERSON:
7917                         return "were";
7918 
7919                     }
7920                     break;
7921 
7922                 case RiTa.PLURAL:
7923 
7924                     return "were";
7925                 }
7926             }
7927 
7928             var got = this.checkRules(PAST_TENSE_RULESET, verb);
7929 
7930             //log("getPast(" + verb + ").returns: " + got);
7931 
7932             return got;
7933         },
7934 
7935         getPresent : function(verb, person, number) {
7936 
7937             person = person || this.person;
7938             number = number || this.number;
7939 
7940             if ((person == RiTa.THIRD_PERSON) && (number == RiTa.SINGULAR)) {
7941 
7942                 return this.checkRules(PRESENT_TENSE_RULESET, verb);
7943             } 
7944             else if (verb == "be") {
7945 
7946                 if (number == RiTa.SINGULAR) {
7947 
7948                     switch (person) {
7949 
7950                     case RiTa.FIRST_PERSON:
7951                         return "am";
7952 
7953                     case RiTa.SECOND_PERSON:
7954                         return "are";
7955 
7956                     case RiTa.THIRD_PERSON:
7957                         return "is";
7958 
7959                         // default: ???
7960                     }
7961 
7962                 } else {
7963                     return "are";
7964                 }
7965             }
7966             return verb;
7967         },
7968 
7969         getPresentParticiple : function(verb) {
7970             
7971             return strOk(verb) ? this.checkRules(PRESENT_PARTICIPLE_RULESET, verb) : E;
7972         },
7973 
7974         getPastParticiple : function(verb) {
7975             
7976             return strOk(verb) ? this.checkRules(PAST_PARTICIPLE_RULESET, verb) : E;
7977         },
7978 
7979         getVerbForm : function(verb, tense, person, number) {
7980 
7981             switch (tense) {
7982 
7983             case RiTa.PRESENT_TENSE:
7984                 return this.getPresent(verb, person, number);
7985 
7986             case RiTa.PAST_TENSE:
7987                 return this.getPast(verb, person, number);
7988 
7989             default:
7990                 return verb;
7991             }
7992         },
7993 
7994         // Returns a String representing the current person from one of
7995         // (first, second, third)
7996         getPerson : function() {
7997             return CONJUGATION_NAMES[this.person];
7998         },
7999 
8000         // Returns a String representing the current number from one of
8001         // (singular, plural)
8002         getNumber : function() {
8003             return CONJUGATION_NAMES[this.number];
8004         },
8005 
8006         // Returns a String representing the current tense from one of
8007         // (past, present, future)
8008         getTense : function() {
8009             return CONJUGATION_NAMES[this.tense];
8010         },
8011 
8012         // Returns the current verb
8013         getVerb : function() {
8014             return this.head;
8015         },
8016 
8017         // Returns whether the conjugation will use passive tense
8018         isPassive : function() {
8019             return this.passive;
8020         },
8021         // Returns whether the conjugation will use perfect tense
8022         isPerfect : function() {
8023             return this.perfect;
8024         },
8025         // Returns whether the conjugation will use progressive tense
8026         isProgressive : function() {
8027             return this.progressive;
8028         },
8029 
8030         // Sets the person for the conjugation, from one of the
8031         // constants: [RiTa.FIRST_PERSON, RiTa.SECOND_PERSON, RiTa.THIRD_PERSON]
8032         setPerson : function(personConstant) {
8033             this.person = personConstant;
8034         },
8035 
8036         // Sets the number for the conjugation, from one of the
8037         // constants: [RiTa.SINGULAR, RiTa.PLURAL]
8038         setNumber : function(numberConstant) {
8039             this.number = numberConstant;
8040         },
8041 
8042         // Sets the tense for the conjugation, from one of the
8043         // constants: [RiTa.PAST_TENSE, RiTa.PRESENT_TENSE, RiTa.FUTURE_TENSE]
8044         setTense : function(tenseConstant) {
8045             this.tense = tenseConstant;
8046         },
8047 
8048         // Sets the verb to be conjugated
8049         setVerb : function(verb) {
8050             var v = this.head = verb.toLowerCase();
8051             if (v === "am" || v === "are" || v === "is" || v === "was" || v === "were") {
8052                 this.head = "be";
8053             }
8054         },
8055 
8056         // Sets whether the conjugation should use passive tense
8057         setPassive : function(bool) {
8058             this.passive = bool;
8059         },
8060 
8061         // Sets whether the conjugation should use perfect tense
8062         setPerfect : function(bool) {
8063             this.perfect = bool;
8064         },
8065 
8066         // Sets whether the conjugation should use progressive tense
8067         setProgressive : function(bool) {
8068             this.progressive = bool;
8069         },
8070 
8071         // A human-readable representation of state for logging
8072         toString : function() {
8073             return "  ---------------------\n" + "  Passive = " + this.isPassive() + "\n"
8074                     + "  Perfect = " + this.isPerfect() + "\n" + "  Progressive = "
8075                     + this.isProgressive() + "\n" + "  ---------------------\n" + "  Number = "
8076                     + this.getNumber() + "\n" + "  Person = " + this.getPerson() + "\n"
8077                     + "  Tense = " + this.getTense() + "\n" + "  ---------------------\n";
8078         },
8079 
8080         // Returns all possible conjugations of the specified verb
8081         // (contains duplicates) (TODO: remove? not sure about this one)
8082         conjugateAll : function(verb) {
8083 
8084             var results = [], i, j, k, l, m, n;
8085 
8086             this.setVerb(verb);
8087 
8088             for (i = 0; i < TENSES.length; i++) {
8089                 this.setTense(TENSES[i]);
8090                 for (j = 0; j < NUMBERS.length; j++) {
8091                     this.setNumber(NUMBERS[j]);
8092                     for (k = 0; k < PERSONS.length; k++) {
8093                         this.setPerson(PERSONS[k]);
8094                         for (l = 0; l < 2; l++) {
8095                             this.setPassive(l == 0 ? true : false);
8096                             for (m = 0; m < 2; m++) {
8097                                 this.setProgressive(m == 0 ? true : false);
8098                                 for (n = 0; n < 2; n++) {
8099                                     this.setPerfect(n == 0 ? true : false);
8100                                     results.push(this.conjugate(verb));
8101                                 }
8102                             }
8103                         }
8104                     }
8105                 }
8106             }
8107             // log("all="+results.length);
8108             return results;
8109         }
8110     }
8111 
8112     // ////////////////////////////////////////////////////////////
8113     // PosTagger  (singleton)
8114     // ////////////////////////////////////////////////////////////
8115     
8116     var PosTagger = {
8117 
8118         // Penn Pos types ------------------------------
8119         UNKNOWN : [ "???", "UNKNOWN" ],
8120         N : [ "N", "NOUN_KEY" ],
8121         V : [ "V", "VERB_KEY" ],
8122         R : [ "R", "ADVERB_KEY" ],
8123         A : [ "A", "ADJECTIVE_KEY" ],
8124         CC : [ "CC", "Coordinating conjunction" ],
8125         CD : [ "CD", "Cardinal number" ],
8126         DT : [ "DT", "Determiner" ],
8127         EX : [ "EX", "Existential there" ],
8128         FW : [ "FW", "Foreign word" ],
8129         IN : [ "IN", "Preposition or subordinating conjunction" ],
8130         JJ : [ "JJ", "Adjective" ],
8131         JJR : [ "JJR", "Adjective, comparative" ],
8132         JJS : [ "JJS", "Adjective, superlative" ],
8133         LS : [ "LS", "List item marker" ],
8134         MD : [ "MD", "Modal" ],
8135         NN : [ "NN", "Noun, singular or mass" ],
8136         NNS : [ "NNS", "Noun, plural" ],
8137         NNP : [ "NNP", "Proper noun, singular" ],
8138         NNPS : [ "NNPS", "Proper noun, plural" ],
8139         PDT : [ "PDT", "Predeterminer" ],
8140         POS : [ "POS", "Possessive ending" ],
8141         PRP : [ "PRP", "Personal pronoun" ],
8142         PRP$ : [ "PRP$", "Possessive pronoun (prolog version PRP-S)" ],
8143         RB : [ "RB", "Adverb" ],
8144         RBR : [ "RBR", "Adverb, comparative" ],
8145         RBS : [ "RBS", "Adverb, superlative" ],
8146         RP : [ "RP", "Particle" ],
8147         SYM : [ "SYM", "Symbol" ],
8148         TO : [ "TO", "to" ],
8149         UH : [ "UH", "Interjection" ],
8150         VB : [ "VB", "Verb, base form" ],
8151         VBD : [ "VBD", "Verb, past tense" ],
8152         VBG : [ "VBG", "Verb, gerund or present participle" ],
8153         VBN : [ "VBN", "Verb, past participle" ],
8154         VBP : [ "VBP", "Verb, non-3rd person singular present" ],
8155         VBZ : [ "VBZ", "Verb, 3rd person singular present" ],
8156         WDT : [ "WDT", "Wh-determiner" ],
8157         WP : [ "WP", "Wh-pronoun" ],
8158         WP$ : [ "WP$", "Possessive wh-pronoun (prolog version WP-S)" ],
8159         WRB : [ "WRB", "Wh-adverb" ],
8160 
8161         TAGS : [ "CC", "CD", "DT", "EX", "FW", "IN", "JJ", 
8162                 "JJR", "JJS", "LS", "MD", "NN", "NNS", "NNP", 
8163                 "NNPS", "PDT", "POS", "PRP", "PRP$", "RB", 
8164                 "RBR", "RBS", "RP", "SYM", "TO", 
8165                  "UH", "VB", "VBD", "VBG", "VBN", "VBP", "VBZ", "WDT", 
8166                  "WP", "WP$", "WRB", "UNKNOWN" ],
8167         NOUNS : [ "NN", "NNS", "NNP", "NNPS" ],
8168         VERBS : [ "VB", "VBD", "VBG", "VBN", "VBP", "VBZ" ],
8169         ADJ : [ "JJ", "JJR", "JJS" ],
8170         ADV : [ "RB", "RBR", "RBS", "RP" ],
8171 
8172    
8173         isVerb : function(tag) {
8174             //return inArray(this.VERBS, tag);
8175             return inArray(this.VERBS, tag.toUpperCase());
8176         },
8177 
8178         isNoun : function(tag) {
8179             //return inArray(this.NOUNS, tag);
8180             return inArray(this.NOUNS, tag.toUpperCase());
8181         },
8182 
8183         isAdverb : function(tag) {
8184             //return inArray(this.ADV, tag);
8185             return inArray(this.ADV, tag.toUpperCase());
8186         },
8187 
8188         isAdj : function(tag) {
8189             //return inArray(this.ADJ, tag);
8190             return inArray(this.ADJ, tag.toUpperCase());
8191         },
8192 
8193         isTag : function(tag) {
8194             return inArray(this.TAGS, tag);
8195         },
8196 
8197         hasTag : function(choices, tag) {
8198             var choiceStr = choices.join();
8199             return (choiceStr.indexOf(tag) > -1);
8200         },
8201         
8202         /**
8203          * Returns an array of parts-of-speech from the Penn tagset, 
8204          * each corresponding to one word of input
8205          */
8206         tag : function(words) {
8207             
8208             
8209             var result = [], choices = [], lex = RiLexicon._getInstance(); 
8210             
8211             words = Type.is(words,A) ?  words : [ words ];
8212             
8213             for (var i = 0, l = words.length; i < l; i++) {
8214      
8215                 if (!strOk(words[i])) continue
8216                 
8217                 var data = lex._getPosArr(words[i]);
8218 
8219                 if (isNull(data) || data.length == 0) {
8220                     
8221                     if (words[i].length == 1) {
8222                         
8223                         result.push(isNum(words[i].charAt(0)) ? "cd" : words[i]);
8224                     } 
8225                     else {
8226                         
8227                         result.push("nn");
8228                     }
8229                     choices[i] = null;  // TODO: OK?
8230                 } 
8231                 else {
8232                     result.push(data[0]);
8233                     choices.push(data);
8234                 }
8235             }
8236 
8237             // Adjust pos according to transformation rules
8238             return this._applyContext(words, result, choices);
8239             
8240         },
8241 
8242         
8243         // Applies a customized subset of the Brill transformations
8244         _applyContext : function(words, result, choices) {
8245             
8246             //log("_applyContext("+words+","+result+","+choices+")");
8247 
8248             // Shortcuts for brevity/readability
8249             var sW = startsWith, eW = endsWith, PRINT_CUSTOM_TAGS = true, PRINT = PRINT_CUSTOM_TAGS;
8250 
8251             // Apply transformations
8252             for (var i = 0, l = words.length; i < l; i++) {
8253 
8254                 var firstLetter = words[i].charAt(0);
8255 
8256                 // transform 1: DT, {VBD | VBP | VB} --> DT, NN
8257                 if (i > 0 && (result[i - 1] == "dt")) {
8258                     if (sW(result[i], "vb")) {
8259                         if (PRINT) {
8260                             log("BrillPosTagger: changing verb to noun: " + words[i]);
8261                         }
8262                         result[i] = "nn";
8263                     }
8264 
8265                     // transform 1: DT, {RB | RBR | RBS} --> DT, {JJ |
8266                     // JJR | JJS}
8267                     else if (sW(result[i], "rb")) {
8268                         if (PRINT) {
8269                             log("BrillPosTagger:  custom tagged '" + words[i] + "', "
8270                                     + result[i]);
8271                         }
8272                         result[i] = (result[i].length > 2) ? "jj" + result[i].charAt(2) : "jj";
8273                         if (PRINT) {
8274                             log(" -> " + result[i]);
8275                         }
8276                     }
8277                 }
8278 
8279                 // transform 2: convert a noun to a number (cd) if it is
8280                 // all digits and/or a decimal "."
8281                 if (sW(result[i], "n") && choices[i] == null) {
8282                     if (isNum(words[i])) {
8283                         result[i] = "cd";
8284                     } // mods: dch (add choice check above) <---- ? >
8285                 }
8286 
8287                 // transform 3: convert a noun to a past participle if
8288                 // words[i] ends with "ed"
8289                 if (sW(result[i], "n") && eW(words[i], "ed")) {
8290                     result[i] = "vbn";
8291                 }
8292 
8293                 // transform 4: convert any type to adverb if it ends in
8294                 // "ly";
8295                 if (eW(words[i], "ly")) {
8296                     result[i] = "rb";
8297                 }
8298 
8299                 // transform 5: convert a common noun (NN or NNS) to a
8300                 // adjective if it ends with "al"
8301                 if (sW(result[i], "nn") && eW(words[i], "al")) {
8302                     result[i] = "jj";
8303                 }
8304 
8305                 // transform 6: convert a noun to a verb if the
8306                 // preceeding word is "would"
8307                 if (i > 0 && sW(result[i], "nn") && equalsIgnoreCase(words[i - 1], "would")) {
8308                     result[i] = "vb";
8309                 }
8310 
8311                 // transform 7: if a word has been categorized as a
8312                 // common noun and it ends
8313                 // with "s", then set its type to plural common noun
8314                 // (NNS)
8315                 if ((result[i] == "nn") && eW(words[i], "s")) {
8316                     result[i] = "nns";
8317                 }
8318 
8319                 // transform 8: convert a common noun to a present
8320                 // participle verb (i.e., a gerund)
8321                 if (sW(result[i], "nn") && eW(words[i], "ing")) {
8322                     // fix here -- add check on choices for any verb: eg
8323                     // 'morning'
8324                     if (this.hasTag(choices[i], "vb")) {
8325                         result[i] = "vbg";
8326                     } else if (PRINT) {
8327                         log("[RiTa] BrillPosTagger tagged '" + words[i] + "' as " + result[i]);
8328                     }
8329                 }
8330 
8331                 // transform 9(dch): convert common nouns to proper
8332                 // nouns when they start w' a capital and are not a
8333                 // sentence start
8334                 if (i > 0 && sW(result[i], "nn") && words[i].length > 1
8335                         && (firstLetter == firstLetter.toUpperCase())) {
8336                     result[i] = eW(result[i], "s") ? "nnps" : "nnp";
8337                 }
8338 
8339                 // transform 10(dch): convert plural nouns (which are
8340                 // also 3sg-verbs) to 3sg-verbs when followed by adverb
8341                 // (jumps, dances)
8342                 if (i < result.length - 1 && result[i] == "nns" && sW(result[i + 1], "rb")
8343                         && this.hasTag(choices[i], "vbz")) {
8344                     result[i] = "vbz";
8345                 }
8346             }
8347          
8348             return result;
8349             
8350         }//.returns(A)
8351 
8352     }// end PosTagger
8353 
8354     /**
8355      * @name Stemmer
8356      * @class
8357      * @private
8358      */
8359     var Stemmer = {};
8360     
8361     /**  
8362      *  Porter stemmer in Javascript: from https://github.com/kristopolous/Porter-Stemmer
8363      *  Ported from Porter, 1980, An algorithm for suffix stripping, Program, Vol. 14,
8364      *  no. 3, pp 130-137, see also http:www.tartarus.org/~martin/PorterStemmer
8365      */
8366     Stemmer.stem_Porter = (function() {
8367         
8368         var step2list = {
8369                 "ational" : "ate",
8370                 "tional" : "tion",
8371                 "enci" : "ence",
8372                 "anci" : "ance",
8373                 "izer" : "ize",
8374                 "bli" : "ble",
8375                 "alli" : "al",
8376                 "entli" : "ent",
8377                 "eli" : "e",
8378                 "ousli" : "ous",
8379                 "ization" : "ize",
8380                 "ation" : "ate",
8381                 "ator" : "ate",
8382                 "alism" : "al",
8383                 "iveness" : "ive",
8384                 "fulness" : "ful",
8385                 "ousness" : "ous",
8386                 "aliti" : "al",
8387                 "iviti" : "ive",
8388                 "biliti" : "ble",
8389                 "logi" : "log"
8390             },
8391     
8392             step3list = {
8393                 "icate" : "ic",
8394                 "ative" : "",
8395                 "alize" : "al",
8396                 "iciti" : "ic",
8397                 "ical" : "ic",
8398                 "ful" : "",
8399                 "ness" : ""
8400             },
8401     
8402             c = "[^aeiou]",          // consonant
8403             v = "[aeiouy]",          // vowel
8404             C = c + "[^aeiouy]*",    // consonant sequence
8405             V = v + "[aeiou]*",      // vowel sequence
8406     
8407             mgr0 = "^(" + C + ")?" + V + C,               // [C]VC... is m>0
8408             meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$",  // [C]VC[V] is m=1
8409             mgr1 = "^(" + C + ")?" + V + C + V + C,       // [C]VCVC... is m>1
8410             s_v = "^(" + C + ")?" + v;                   // vowel in stem
8411     
8412         return function (w) {
8413             var     stem,
8414                 suffix,
8415                 firstch,
8416                 re,
8417                 re2,
8418                 re3,
8419                 re4,
8420                 origword = w;
8421     
8422             if (w.length < 3) { return w; }
8423     
8424             firstch = w.substr(0,1);
8425             if (firstch == "y") {
8426                 w = firstch.toUpperCase() + w.substr(1);
8427             }
8428     
8429             // Step 1a
8430             re = /^(.+?)(ss|i)es$/;
8431             re2 = /^(.+?)([^s])s$/;
8432     
8433             if (re.test(w)) { w = w.replace(re,"$1$2"); }
8434             else if (re2.test(w)) { w = w.replace(re2,"$1$2"); }
8435     
8436             // Step 1b
8437             re = /^(.+?)eed$/;
8438             re2 = /^(.+?)(ed|ing)$/;
8439             if (re.test(w)) {
8440                 var fp = re.exec(w);
8441                 re = new RegExp(mgr0);
8442                 if (re.test(fp[1])) {
8443                     re = /.$/;
8444                     w = w.replace(re,"");
8445                 }
8446             } else if (re2.test(w)) {
8447                 var fp = re2.exec(w);
8448                 stem = fp[1];
8449                 re2 = new RegExp(s_v);
8450                 if (re2.test(stem)) {
8451                     w = stem;
8452                     re2 = /(at|bl|iz)$/;
8453                     re3 = new RegExp("([^aeiouylsz])\\1$");
8454                     re4 = new RegExp("^" + C + v + "[^aeiouwxy]$");
8455                     if (re2.test(w)) { w = w + "e"; }
8456                     else if (re3.test(w)) { re = /.$/; w = w.replace(re,""); }
8457                     else if (re4.test(w)) { w = w + "e"; }
8458                 }
8459             }
8460     
8461             // Step 1c
8462             re = /^(.+?)y$/;
8463             if (re.test(w)) {
8464                 var fp = re.exec(w);
8465                 stem = fp[1];
8466                 re = new RegExp(s_v);
8467                 if (re.test(stem)) { w = stem + "i"; }
8468             }
8469     
8470             // Step 2
8471             re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/;
8472             if (re.test(w)) {
8473                 var fp = re.exec(w);
8474                 stem = fp[1];
8475                 suffix = fp[2];
8476                 re = new RegExp(mgr0);
8477                 if (re.test(stem)) {
8478                     w = stem + step2list[suffix];
8479                 }
8480             }
8481     
8482             // Step 3
8483             re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/;
8484             if (re.test(w)) {
8485                 var fp = re.exec(w);
8486                 stem = fp[1];
8487                 suffix = fp[2];
8488                 re = new RegExp(mgr0);
8489                 if (re.test(stem)) {
8490                     w = stem + step3list[suffix];
8491                 }
8492             }
8493     
8494             // Step 4
8495             re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/;
8496             re2 = /^(.+?)(s|t)(ion)$/;
8497             if (re.test(w)) {
8498                 var fp = re.exec(w);
8499                 stem = fp[1];
8500                 re = new RegExp(mgr1);
8501                 if (re.test(stem)) {
8502                     w = stem;
8503                 }
8504             } else if (re2.test(w)) {
8505                 var fp = re2.exec(w);
8506                 stem = fp[1] + fp[2];
8507                 re2 = new RegExp(mgr1);
8508                 if (re2.test(stem)) {
8509                     w = stem;
8510                 }
8511             }
8512     
8513             // Step 5
8514             re = /^(.+?)e$/;
8515             if (re.test(w)) {
8516                 var fp = re.exec(w);
8517                 stem = fp[1];
8518                 re = new RegExp(mgr1);
8519                 re2 = new RegExp(meq1);
8520                 re3 = new RegExp("^" + C + v + "[^aeiouwxy]$");
8521                 if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) {
8522                     w = stem;
8523                 }
8524             }
8525     
8526             re = /ll$/;
8527             re2 = new RegExp(mgr1);
8528             if (re.test(w) && re2.test(w)) {
8529                 re = /.$/;
8530                 w = w.replace(re,"");
8531             }
8532     
8533             // and turn initial Y back to y
8534     
8535             if (firstch == "y") {
8536                 w = firstch.toLowerCase() + w.substr(1);
8537             }
8538     
8539             return w;
8540         }
8541     })();
8542 
8543     Stemmer.stem_Lancaster = (function() {
8544         
8545         function accept(token) {
8546             
8547             return (token.match(/^[aeiou]/)) ?
8548                 (token.length > 1) : (token.length > 2 && token.match(/[aeiouy]/));
8549         }
8550         
8551         // take a token, look up the applicable rule and do the stem
8552         function applyRules(token, intact) {
8553     
8554             var section = token.substr( - 1), rules = ruleTable[section];
8555     
8556             if (rules) {
8557                 
8558                 for (var i = 0; i < rules.length; i++) {
8559                     
8560                  // only apply intact rules to intact tokens
8561                     if ((intact || !rules[i].intact) && token.substr(0 - rules[i].pattern.length) == rules[i].pattern) {
8562                         
8563                         // hack off only as much as the rule indicates
8564                         var result = token.substr(0, token.length - rules[i].size);
8565     
8566                         // if the rules wants us to apply an appendage do so
8567                         if (rules[i].appendage)
8568                             result += rules[i].appendage;
8569     
8570                         if (accept(result)) {
8571                             token = result;
8572     
8573                             // see what the rules wants to do next
8574                             if (rules[i].continuation) {
8575                                 // this rule thinks there still might be stem left. keep at it.
8576                                 // since we've applied a change we'll pass false in for intact
8577                                 return applyRules(result, false);
8578                                 
8579                             } else {
8580                                 
8581                                 // the rule thinks we're done stemming. drop out.
8582                                 return result;
8583                             }
8584                         }
8585                     }
8586                 }
8587             }
8588             else
8589                 err('No rules found!');
8590     
8591             return token;
8592         }
8593     
8594         var ruleTable = {
8595             "a": [
8596                 {
8597                     "continuation": false, 
8598                     "intact": true, 
8599                     "pattern": "ia", 
8600                     "size": "2"
8601                 }, 
8602                 {
8603                     "continuation": false, 
8604                     "intact": true, 
8605                     "pattern": "a", 
8606                     "size": "1"
8607                 }
8608             ], 
8609             "b": [
8610                 {
8611                     "continuation": false, 
8612                     "intact": false, 
8613                     "pattern": "bb", 
8614                     "size": "1"
8615                 }
8616             ], 
8617             "c": [
8618                 {
8619                     "appendage": "s", 
8620                     "continuation": false, 
8621                     "intact": false, 
8622                     "pattern": "ytic", 
8623                     "size": "3"
8624                 }, 
8625                 {
8626                     "continuation": true, 
8627                     "intact": false, 
8628                     "pattern": "ic", 
8629                     "size": "2"
8630                }, 
8631                 {
8632                     "appendage": "t", 
8633                     "continuation": true, 
8634                     "intact": false, 
8635                     "pattern": "nc", 
8636                     "size": "1"
8637                 }
8638             ], 
8639             "d": [
8640                 {
8641                     "continuation": false, 
8642                     "intact": false, 
8643                     "pattern": "dd", 
8644                     "size": "1"
8645                 }, 
8646                 {
8647                     "appendage": "y", 
8648                     "continuation": true, 
8649                     "intact": false, 
8650                     "pattern": "ied", 
8651                     "size": "3"
8652                 }, 
8653                 {
8654                     "appendage": "s", 
8655                     "continuation": false, 
8656                     "intact": false, 
8657                     "pattern": "ceed", 
8658                     "size": "2"
8659                 }, 
8660                 {
8661                     "continuation": false, 
8662                     "intact": false, 
8663                     "pattern": "eed", 
8664                     "size": "1"
8665                 }, 
8666                 {
8667                     "continuation": true, 
8668                     "intact": false, 
8669                     "pattern": "ed", 
8670                     "size": "2"
8671                 }, 
8672                 {
8673                     "continuation": true, 
8674                     "intact": false, 
8675                     "pattern": "hood", 
8676                     "size": "4"
8677                 }
8678             ], 
8679             "e": [
8680                 {
8681                     "continuation": true, 
8682                     "intact": false, 
8683                     "pattern": "e", 
8684                     "size": "1"
8685                 }
8686             ], 
8687             "f": [
8688                 {
8689                     "appendage": "v", 
8690                     "continuation": false, 
8691                     "intact": false, 
8692                     "pattern": "lief", 
8693                     "size": "1"
8694                 }, 
8695                 {
8696                     "continuation": true, 
8697                     "intact": false, 
8698                     "pattern": "if", 
8699                     "size": "2"
8700                 }
8701             ], 
8702             "g": [
8703                 {
8704                     "continuation": true, 
8705                     "intact": false, 
8706                     "pattern": "ing", 
8707                     "size": "3"
8708                 }, 
8709                 {
8710                     "appendage": "y", 
8711                     "continuation": false, 
8712                     "intact": false, 
8713                     "pattern": "iag", 
8714                     "size": "3"
8715                 }, 
8716                 {
8717                     "continuation": true, 
8718                     "intact": false, 
8719                     "pattern": "ag", 
8720                     "size": "2"
8721                 }, 
8722                 {
8723                     "continuation": false, 
8724                     "intact": false, 
8725                     "pattern": "gg", 
8726                     "size": "1"
8727                 }
8728             ], 
8729             "h": [
8730                 {
8731                     "continuation": false, 
8732                     "intact": true, 
8733                     "pattern": "th", 
8734                     "size": "2"
8735                 }, 
8736                 {
8737                     "appendage": "c", 
8738                     "continuation": false, 
8739                     "intact": false, 
8740                     "pattern": "guish", 
8741                     "size": "5"
8742                 }, 
8743                 {
8744                     "continuation": true, 
8745                     "intact": false, 
8746                     "pattern": "ish", 
8747                     "size": "3"
8748                 }
8749             ], 
8750             "i": [
8751                 {
8752                     "continuation": false, 
8753                     "intact": true, 
8754                     "pattern": "i", 
8755                     "size": "1"
8756                 }, 
8757                 {
8758                     "appendage": "y", 
8759                     "continuation": true, 
8760                     "intact": false, 
8761                     "pattern": "i", 
8762                     "size": "1"
8763                 }
8764             ], 
8765             "j": [
8766                 {
8767                     "appendage": "d", 
8768                     "continuation": false, 
8769                     "intact": false, 
8770                     "pattern": "ij", 
8771                     "size": "1"
8772                 }, 
8773                 {
8774                     "appendage": "s", 
8775                     "continuation": false, 
8776                     "intact": false, 
8777                     "pattern": "fuj", 
8778                     "size": "1"
8779                 }, 
8780                 {
8781                     "appendage": "d", 
8782                     "continuation": false, 
8783                     "intact": false, 
8784                     "pattern": "uj", 
8785                     "size": "1"
8786                 }, 
8787                 {
8788                     "appendage": "d", 
8789                     "continuation": false, 
8790                     "intact": false, 
8791                     "pattern": "oj", 
8792                     "size": "1"
8793                 }, 
8794                 {
8795                     "appendage": "r", 
8796                     "continuation": false, 
8797                     "intact": false, 
8798                     "pattern": "hej", 
8799                     "size": "1"
8800                 }, 
8801                 {
8802                     "appendage": "t", 
8803                     "continuation": false, 
8804                     "intact": false, 
8805                     "pattern": "verj", 
8806                     "size": "1"
8807                 }, 
8808                 {
8809                     "appendage": "t", 
8810                     "continuation": false, 
8811                     "intact": false, 
8812                     "pattern": "misj", 
8813                     "size": "2"
8814                 }, 
8815                 {
8816                     "appendage": "d", 
8817                     "continuation": false, 
8818                     "intact": false, 
8819                     "pattern": "nj", 
8820                     "size": "1"
8821                 }, 
8822                 {
8823                     "appendage": "s", 
8824                     "continuation": false, 
8825                     "intact": false, 
8826                     "pattern": "j", 
8827                     "size": "1"
8828                 }
8829             ], 
8830             "l": [
8831                 {
8832                     "continuation": false, 
8833                     "intact": false, 
8834                     "pattern": "ifiabl", 
8835                     "size": "6"
8836                 }, 
8837                 {
8838                     "appendage": "y", 
8839                     "continuation": false, 
8840                     "intact": false, 
8841                     "pattern": "iabl", 
8842                     "size": "4"
8843                 }, 
8844                 {
8845                     "continuation": true, 
8846                     "intact": false, 
8847                     "pattern": "abl", 
8848                     "size": "3"
8849                 }, 
8850                 {
8851                     "continuation": false, 
8852                     "intact": false, 
8853                     "pattern": "ibl", 
8854                     "size": "3"
8855                 }, 
8856                 {
8857                     "appendage": "l", 
8858                     "continuation": true, 
8859                     "intact": false, 
8860                     "pattern": "bil", 
8861                     "size": "2"
8862                 }, 
8863                 {
8864                     "continuation": false, 
8865                     "intact": false, 
8866                     "pattern": "cl", 
8867                     "size": "1"
8868                 }, 
8869                 {
8870                     "appendage": "y", 
8871                     "continuation": false, 
8872                     "intact": false, 
8873                     "pattern": "iful", 
8874                     "size": "4"
8875                 }, 
8876                 {
8877                     "continuation": true, 
8878                     "intact": false, 
8879                     "pattern": "ful", 
8880                     "size": "3"
8881                 }, 
8882                 {
8883                     "continuation": false, 
8884                     "intact": false, 
8885                     "pattern": "ul", 
8886                     "size": "2"
8887                 }, 
8888                 {
8889                     "continuation": true, 
8890                     "intact": false, 
8891                     "pattern": "ial", 
8892                     "size": "3"
8893                 }, 
8894                 {
8895                     "continuation": true, 
8896                     "intact": false, 
8897                     "pattern": "ual", 
8898                     "size": "3"
8899                 }, 
8900                 {
8901                     "continuation": true, 
8902                     "intact": false, 
8903                     "pattern": "al", 
8904                     "size": "2"
8905                 }, 
8906                 {
8907                     "continuation": false, 
8908                     "intact": false, 
8909                     "pattern": "ll", 
8910                     "size": "1"
8911                 }
8912             ], 
8913             "m": [
8914                 {
8915                     "continuation": false, 
8916                     "intact": false, 
8917                     "pattern": "ium", 
8918                     "size": "3"
8919                 }, 
8920                 {
8921                     "continuation": false, 
8922                     "intact": true, 
8923                     "pattern": "um", 
8924                     "size": "2"
8925                 }, 
8926                 {
8927                     "continuation": true, 
8928                     "intact": false, 
8929                     "pattern": "ism", 
8930                     "size": "3"
8931                 }, 
8932                 {
8933                     "continuation": false, 
8934                     "intact": false, 
8935                     "pattern": "mm", 
8936                     "size": "1"
8937                 }
8938             ], 
8939             "n": [
8940                 {
8941                     "appendage": "j", 
8942                     "continuation": true, 
8943                     "intact": false, 
8944                     "pattern": "sion", 
8945                     "size": "4"
8946                 }, 
8947                 {
8948                     "appendage": "c", 
8949                     "continuation": false, 
8950                     "intact": false, 
8951                     "pattern": "xion", 
8952                     "size": "4"
8953                 }, 
8954                 {
8955                     "continuation": true, 
8956                     "intact": false, 
8957                     "pattern": "ion", 
8958                     "size": "3"
8959                 }, 
8960                 {
8961                     "continuation": true, 
8962                     "intact": false, 
8963                     "pattern": "ian", 
8964                     "size": "3"
8965                 }, 
8966                 {
8967                     "continuation": true, 
8968                     "intact": false, 
8969                     "pattern": "an", 
8970                     "size": "2"
8971                 }, 
8972                 {
8973                     "continuation": false, 
8974                     "intact": false, 
8975                     "pattern": "een", 
8976                     "size": "0"
8977                 }, 
8978                 {
8979                     "continuation": true, 
8980                     "intact": false, 
8981                     "pattern": "en", 
8982                     "size": "2"
8983                 }, 
8984                 {
8985                     "continuation": false, 
8986                     "intact": false, 
8987                     "pattern": "nn", 
8988                     "size": "1"
8989                 }
8990             ], 
8991             "p": [
8992                 {
8993                     "continuation": true, 
8994                     "intact": false, 
8995                     "pattern": "ship", 
8996                     "size": "4"
8997                 }, 
8998                 {
8999                     "continuation": false, 
9000                     "intact": false, 
9001                     "pattern": "pp", 
9002                     "size": "1"
9003                 }
9004             ], 
9005             "r": [
9006                 {
9007                     "continuation": true, 
9008                     "intact": false, 
9009                     "pattern": "er", 
9010                     "size": "2"
9011                 }, 
9012                 {
9013                     "continuation": false, 
9014                     "intact": false, 
9015                     "pattern": "ear", 
9016                     "size": "0"
9017                 }, 
9018                 {
9019                     "continuation": false, 
9020                     "intact": false, 
9021                     "pattern": "ar", 
9022                     "size": "2"
9023                 }, 
9024                 {
9025                     "continuation": true, 
9026                     "intact": false, 
9027                     "pattern": "or", 
9028                     "size": "2"
9029                 }, 
9030                 {
9031                     "continuation": true, 
9032                     "intact": false, 
9033                     "pattern": "ur", 
9034                     "size": "2"
9035                 }, 
9036                 {
9037                     "continuation": false, 
9038                     "intact": false, 
9039                     "pattern": "rr", 
9040                     "size": "1"
9041                 }, 
9042                 {
9043                     "continuation": true, 
9044                     "intact": false, 
9045                     "pattern": "tr", 
9046                     "size": "1"
9047                 }, 
9048                 {
9049                     "appendage": "y", 
9050                     "continuation": true, 
9051                     "intact": false, 
9052                     "pattern": "ier", 
9053                     "size": "3"
9054                 }
9055             ], 
9056             "s": [
9057                 {
9058                     "appendage": "y", 
9059                     "continuation": true, 
9060                     "intact": false, 
9061                     "pattern": "ies", 
9062                     "size": "3"
9063                 }, 
9064                 {
9065                     "continuation": false, 
9066                     "intact": false, 
9067                     "pattern": "sis", 
9068                     "size": "2"
9069                 }, 
9070                 {
9071                     "continuation": true, 
9072                     "intact": false, 
9073                     "pattern": "is", 
9074                     "size": "2"
9075                 }, 
9076                 {
9077                     "continuation": true, 
9078                     "intact": false, 
9079                     "pattern": "ness", 
9080                     "size": "4"
9081                 }, 
9082                 {
9083                     "continuation": false, 
9084                     "intact": false, 
9085                     "pattern": "ss", 
9086                     "size": "0"
9087                 }, 
9088                 {
9089                     "continuation": true, 
9090                     "intact": false, 
9091                     "pattern": "ous", 
9092                     "size": "3"
9093                 }, 
9094                 {
9095                     "continuation": false, 
9096                     "intact": true, 
9097                     "pattern": "us", 
9098                     "size": "2"
9099                 }, 
9100                 {
9101                     "continuation": true, 
9102                     "intact": true, 
9103                     "pattern": "s", 
9104                     "size": "1"
9105                 }, 
9106                 {
9107                     "continuation": false, 
9108                     "intact": false, 
9109                     "pattern": "s", 
9110                     "size": "0"
9111                 }
9112             ], 
9113             "t": [
9114                 {
9115                     "appendage": "y", 
9116                     "continuation": false, 
9117                     "intact": false, 
9118                     "pattern": "plicat", 
9119                     "size": "4"
9120                 }, 
9121                 {
9122                     "continuation": true, 
9123                     "intact": false, 
9124                     "pattern": "at", 
9125                     "size": "2"
9126                 }, 
9127                 {
9128                     "continuation": true, 
9129                     "intact": false, 
9130                     "pattern": "ment", 
9131                     "size": "4"
9132                 }, 
9133                 {
9134                     "continuation": true, 
9135                     "intact": false, 
9136                     "pattern": "ent", 
9137                     "size": "3"
9138                 }, 
9139                 {
9140                     "continuation": true, 
9141                     "intact": false, 
9142                     "pattern": "ant", 
9143                     "size": "3"
9144                 }, 
9145                 {
9146                     "appendage": "b", 
9147                     "continuation": false, 
9148                     "intact": false, 
9149                     "pattern": "ript", 
9150                     "size": "2"
9151                 }, 
9152                 {
9153                     "appendage": "b", 
9154                     "continuation": false, 
9155                     "intact": false, 
9156                     "pattern": "orpt", 
9157                     "size": "2"
9158                 }, 
9159                 {
9160                     "continuation": false, 
9161                     "intact": false, 
9162                     "pattern": "duct", 
9163                     "size": "1"
9164                 }, 
9165                 {
9166                     "continuation": false, 
9167                     "intact": false, 
9168                     "pattern": "sumpt", 
9169                     "size": "2"
9170                 }, 
9171                 {
9172                     "appendage": "i", 
9173                     "continuation": false, 
9174                     "intact": false, 
9175                     "pattern": "cept", 
9176                     "size": "2"
9177                 }, 
9178                 {
9179                     "appendage": "v", 
9180                     "continuation": false, 
9181                     "intact": false, 
9182                     "pattern": "olut", 
9183                     "size": "2"
9184                 }, 
9185                 {
9186                     "continuation": false, 
9187                     "intact": false, 
9188                     "pattern": "sist", 
9189                     "size": "0"
9190                 }, 
9191                 {
9192                     "continuation": true, 
9193                     "intact": false, 
9194                     "pattern": "ist", 
9195                     "size": "3"
9196                 }, 
9197                 {
9198                     "continuation": false, 
9199                     "intact": false, 
9200                     "pattern": "tt", 
9201                     "size": "1"
9202                 }
9203             ], 
9204             "u": [
9205                 {
9206                     "continuation": false, 
9207                     "intact": false, 
9208                     "pattern": "iqu", 
9209                     "size": "3"
9210                 }, 
9211                 {
9212                     "continuation": false, 
9213                     "intact": false, 
9214                     "pattern": "ogu", 
9215                     "size": "1"
9216                 }
9217             ], 
9218             "v": [
9219                 {
9220                     "appendage": "j", 
9221                     "continuation": true, 
9222                     "intact": false, 
9223                     "pattern": "siv", 
9224                     "size": "3"
9225                 }, 
9226                 {
9227                     "continuation": false, 
9228                     "intact": false, 
9229                     "pattern": "eiv", 
9230                     "size": "0"
9231                 }, 
9232                 {
9233                     "continuation": true, 
9234                     "intact": false, 
9235                     "pattern": "iv", 
9236                     "size": "2"
9237                 }
9238             ], 
9239             "y": [
9240                 {
9241                     "continuation": true, 
9242                     "intact": false, 
9243                     "pattern": "bly", 
9244                     "size": "1"
9245                 }, 
9246                 {
9247                     "appendage": "y", 
9248                     "continuation": true, 
9249                     "intact": false, 
9250                     "pattern": "ily", 
9251                     "size": "3"
9252                 }, 
9253                 {
9254                     "continuation": false, 
9255                     "intact": false, 
9256                     "pattern": "ply", 
9257                     "size": "0"
9258                 }, 
9259                 {
9260                     "continuation": true, 
9261                     "intact": false, 
9262                     "pattern": "ly", 
9263                     "size": "2"
9264                 }, 
9265                 {
9266                     "continuation": false, 
9267                     "intact": false, 
9268                     "pattern": "ogy", 
9269                     "size": "1"
9270                 }, 
9271                 {
9272                     "continuation": false, 
9273                     "intact": false, 
9274                     "pattern": "phy", 
9275                     "size": "1"
9276                 }, 
9277                 {
9278                     "continuation": false, 
9279                     "intact": false, 
9280                     "pattern": "omy", 
9281                     "size": "1"
9282                 }, 
9283                 {
9284                     "continuation": false, 
9285                     "intact": false, 
9286                     "pattern": "opy", 
9287                     "size": "1"
9288                 }, 
9289                 {
9290                     "continuation": true, 
9291                     "intact": false, 
9292                     "pattern": "ity", 
9293                     "size": "3"
9294                 }, 
9295                 {
9296                     "continuation": true, 
9297                     "intact": false, 
9298                     "pattern": "ety", 
9299                     "size": "3"
9300                 }, 
9301                 {
9302                     "continuation": false, 
9303                     "intact": false, 
9304                     "pattern": "lty", 
9305                     "size": "2"
9306                 }, 
9307                 {
9308                     "continuation": false, 
9309                     "intact": false, 
9310                     "pattern": "istry", 
9311                     "size": "5"
9312                 }, 
9313                 {
9314                     "continuation": true, 
9315                     "intact": false, 
9316                     "pattern": "ary", 
9317                     "size": "3"
9318                 }, 
9319                 {
9320                     "continuation": true, 
9321                     "intact": false, 
9322                     "pattern": "ory", 
9323                     "size": "3"
9324                 }, 
9325                 {
9326                     "continuation": false, 
9327                     "intact": false, 
9328                     "pattern": "ify", 
9329                     "size": "3"
9330                 }, 
9331                 {
9332                     "appendage": "t", 
9333                     "continuation": true, 
9334                     "intact": false, 
9335                     "pattern": "ncy", 
9336                     "size": "2"
9337                 }, 
9338                 {
9339                     "continuation": true, 
9340                     "intact": false, 
9341                     "pattern": "acy", 
9342                     "size": "3"
9343                 }
9344             ], 
9345             "z": [
9346                 {
9347                     "continuation": true, 
9348                     "intact": false, 
9349                     "pattern": "iz", 
9350                     "size": "2"
9351                 }, 
9352                 {
9353                     "appendage": "s", 
9354                     "continuation": false, 
9355                     "intact": false, 
9356                     "pattern": "yz", 
9357                     "size": "1"
9358                 }
9359             ]
9360         };
9361         
9362         return function(token) {
9363             
9364             return applyRules(token.toLowerCase(), true);
9365         }
9366         
9367     })();
9368     
9369     //////////////////////////////////////////////////////////////////
9370     //////// MinEditDist (singleton)
9371     ////////////////////////////////////////////////////////////////
9372 
9373     /**
9374      * Minimum-Edit-Distance (or Levenshtein distance) is a measure of the similarity 
9375      * between two strings, the source string and the target string (t). The distance 
9376      * is the number of deletions, insertions, or substitutions required to transform 
9377      * the source into the target / avg_string_length<p> 
9378      * 
9379      * Adapted from Michael Gilleland's algorithm
9380      * 
9381      * @name MinEditDist
9382      * @class
9383      * @private
9384      */
9385     var MinEditDist = {
9386 
9387         _min3 : function(a,b,c) { 
9388 
9389             var min = a;
9390             if (b < min) min = b;
9391             if (c < min) min = c;
9392             return min;
9393         },
9394 
9395         /**
9396          * Computes min-edit-distance between 2 string arrays
9397          * where each array element either matches or does not
9398          */
9399         _computeRawArray : function(srcArr, trgArr) { // TODO: make private to class
9400 
9401             //log((srcArr)+" "+(trgArr));
9402             
9403             var matrix = []; // matrix
9404             var sI; // ith element of s
9405             var tJ; // jth element of t
9406             var cost; // cost
9407 
9408             // Step 1 ----------------------------------------------
9409 
9410             if (srcArr.length == 0) return trgArr.length;
9411 
9412             if (trgArr.length == 0) return srcArr.length;
9413 
9414             //matrix = new var[srcArr.length + 1][trgArr.length + 1];
9415 
9416             // Step 2 ----------------------------------------------
9417 
9418             for (var i = 0; i <= srcArr.length; i++) {
9419                 matrix[i] = [];
9420                 matrix[i][0] = i;
9421             }
9422 
9423             for (var j = 0; j <= trgArr.length; j++)    
9424                 matrix[0][j] = j;
9425 
9426             // Step 3 ----------------------------------------------
9427 
9428             //String[] srcArr = RiFreeTTSEngine.cleanPhonemes(srcArr);    
9429             for (var i = 1; i <= srcArr.length; i++)
9430             {
9431                 sI = srcArr[i - 1];
9432 
9433                 // Step 4 --------------------------------------------
9434 
9435                 for (var j = 1; j <= trgArr.length; j++)
9436                 {
9437                     tJ = trgArr[j - 1];
9438 
9439                     // Step 5 ------------------------------------------
9440 
9441                     cost = (sI === tJ) ? 0 : 1;
9442 
9443                     // Step 6 ------------------------------------------
9444                     matrix[i][j] = this._min3 (matrix[i - 1][j] + 1, 
9445                         matrix[i][j - 1] + 1, 
9446                         matrix[i - 1][j - 1] + cost);
9447                 }
9448             }
9449 
9450             // Step 7 ----------------------------------------------
9451 
9452             return matrix[srcArr.length][trgArr.length];
9453         },
9454 
9455         
9456         /**
9457          * Compute min-edit-distance between 2 strings
9458          * @see MinEditDist#computeAdjusted(java.lang.String,java.lang.String)
9459          */ 
9460         computeRaw : function(source, target) { 
9461 
9462             var st = Type.get(source), tt = Type.get(source);
9463             
9464             if (st!=tt) err('Unexpected args: '+source+"/"+target);
9465 
9466             if (tt===A) return this._computeRawArray(source, target);
9467             
9468             if (!source.length && !target.length) return 0;
9469 
9470             var matrix = []; // matrix
9471             var sI; // ith character of s
9472             var tJ; // jth character of t
9473             var cost; // cost
9474 
9475             // Step 1 ----------------------------------------------
9476             var sourceLength = source.length;
9477             var targetLength = target.length;
9478 
9479             if (sourceLength == 0) return targetLength;
9480 
9481             if (targetLength == 0) return sourceLength;
9482 
9483             //matrix = new int[sourceLength + 1][targetLength + 1];
9484 
9485             // Step 2 ----------------------------------------------
9486 
9487             for (var i = 0; i <= sourceLength; i++) {
9488                 matrix[i] = [];
9489                 matrix[i][0] = i;
9490             }
9491 
9492             for (var j = 0; j <= targetLength; j++)   
9493                 matrix[0][j] = j;
9494 
9495             // Step 3 ----------------------------------------------
9496 
9497             for (var i = 1; i <= sourceLength; i++)
9498             {
9499 
9500                 sI = source.charAt(i - 1);
9501 
9502                 // Step 4 --------------------------------------------
9503 
9504                 for (var j = 1; j <= targetLength; j++)
9505                 {
9506                     tJ = target.charAt(j - 1);
9507 
9508                     // Step 5 ------------------------------------------
9509 
9510                     cost = (sI == tJ) ? 0 : 1;
9511 
9512                     // Step 6 ------------------------------------------
9513                     matrix[i][j] = this._min3(matrix[i - 1][j] + 1, 
9514                         matrix[i][j - 1] + 1, 
9515                         matrix[i - 1][j - 1] + cost);
9516                 }
9517             }
9518 
9519             // Step 7 ----------------------------------------------
9520 
9521             return matrix[sourceLength][targetLength];
9522             
9523         },
9524 
9525         /**
9526          * Compute min-edit-distance between 2 strings (or 2 arrays of strings) 
9527          * divided by their average length.
9528          */ 
9529         computeAdjusted : function(source, target) {
9530 
9531             var st = Type.get(source), tt = Type.get(source);
9532             if (st===tt) {
9533 
9534                 if (tt===S) {
9535                     if (!source.length && !target.length) return 0;
9536                     //log(this.computeRaw(source, target)+'/'+(source.length + target.length));
9537                     return this.computeRaw(source, target) / (source.length + target.length);
9538                 }
9539                 else if (tt===A) {
9540                     if (!source.length && !target.length) return 0;
9541                     //log(_computeRawArray(source, target)+'/'+(source.length + target.length));
9542                     return this._computeRawArray(source, target) / (source.length + target.length);
9543                 }
9544             }
9545             err('Unexpected args: '+source+"/"+target);
9546             
9547         }
9548         
9549     }
9550     
9551     //////////////////////////////////////////////////////////////////
9552     //////// RegexRule 
9553     ////////////////////////////////////////////////////////////////
9554 
9555     /**
9556     * @name RegexRule
9557     * @class
9558     * @private
9559     */
9560     var RegexRule = makeClass();
9561 
9562     RegexRule.prototype = {
9563         
9564         initialize : function(regex, offset, suffix) {
9565             
9566             this.regex = new RegExp(regex);
9567             this.offset = offset;
9568             this.suffix = suffix;
9569         },
9570         
9571         applies : function(word) {
9572 
9573             return this.regex.test(trim(word));
9574         },
9575         
9576         fire : function(word) {
9577 
9578             return this.truncate(trim(word)) + this.suffix;
9579         },
9580         
9581         analyze : function(word) {
9582             
9583             return ((this.suffix != "") && endsWith(word, this.suffix)) ? true : false;
9584         },
9585         
9586         truncate : function(word) {
9587 
9588             return (this.offset == 0) ? word : word.substr(0, word.length - this.offset);
9589         }
9590     }
9591     
9592     
9593     
9594     //////////////////////////////////////////////////////////////////////////////////////
9595     // adapted from: https://github.com/sole/tween.js
9596     //////////////////////////////////////////////////////////////////////////////////////    
9597     
9598     /**
9599      * @private
9600      */
9601     var TextBehavior = function (rt, object) {
9602     
9603         var _parent = rt;
9604         var _object = object || _parent;
9605         var _valuesStart = {};
9606         var _valuesEnd = {};
9607         var _duration = 1000;
9608         var _delayTime = 0;
9609         var _startTime = null;
9610         var _easingFunction = Easing.Linear.None;
9611         var _interpolationFunction = Interpolation.Linear;
9612         var _chainedTween = null;
9613         var _onUpdateCallback = null;
9614         var _onCompleteCallback = null;
9615     
9616         this.to = function ( properties, duration ) {
9617     
9618             if ( duration !== null ) {
9619     
9620                 _duration = duration;
9621             }
9622     
9623             _valuesEnd = properties;
9624             
9625             return this;
9626         }
9627     
9628         this.start = function ( time ) {
9629     
9630             if (_parent) 
9631                 _parent._addBehavior( this );
9632             else
9633                 err('Unable to add tween');
9634     
9635             _startTime = time !== undefined ? time : Date.now();
9636             _startTime += _delayTime;
9637     
9638             for ( var property in _valuesEnd ) {
9639     
9640                 // This prevents the engine from interpolating null values
9641                 if ( _object[ property ] === null ) {
9642                     console.error('null value in interpolater for: '+property);
9643                     continue;
9644     
9645                 }
9646     
9647                 // check if an Array was provided as property value
9648                 if ( _valuesEnd[ property ] instanceof Array ) {
9649     
9650                     if ( _valuesEnd[ property ].length === 0 ) {
9651     
9652                         continue;
9653                     }
9654     
9655                     // create a local copy of the Array with the start value at the front
9656                     _valuesEnd[ property ] = [ _object[ property ] ].concat( _valuesEnd[ property ] );
9657                 }
9658     
9659                 _valuesStart[ property ] = _object[ property ];
9660             }
9661     
9662             return this;
9663     
9664         }
9665     
9666         this.stop = function () {
9667     
9668             if (_parent) _parent._removeBehavior( this );
9669             return this;
9670     
9671         }
9672     
9673         this.delay = function ( amount ) {
9674     
9675             _delayTime = amount;
9676             return this;
9677     
9678         }
9679     
9680         this.easing = function ( easing ) {
9681     
9682             _easingFunction = easing;
9683             return this;
9684     
9685         }
9686     
9687         this.interpolation = function ( interpolation ) {
9688     
9689             _interpolationFunction = interpolation;
9690             return this;
9691     
9692         }
9693     
9694         this.chain = function ( chainedTween ) {
9695     
9696             _chainedTween = chainedTween;
9697             return this;
9698     
9699         }
9700     
9701         this.onUpdate = function ( onUpdateCallback ) {
9702     
9703             _onUpdateCallback = onUpdateCallback;
9704             return this;
9705     
9706         }
9707     
9708         this.onComplete = function ( onCompleteCallback ) {
9709     
9710             _onCompleteCallback = onCompleteCallback;
9711             return this;
9712     
9713         }
9714     
9715         this.update = function ( time ) {
9716     
9717             if ( time < _startTime ) {
9718     
9719                 return true;
9720     
9721             }
9722     
9723             var elapsed = ( time - _startTime ) / _duration;
9724             elapsed = elapsed > 1 ? 1 : elapsed;
9725     
9726             var value = _easingFunction( elapsed );
9727     
9728             for ( var property in _valuesStart ) {
9729     
9730                 var start = _valuesStart[ property ];
9731                 var end = _valuesEnd[ property ];
9732     
9733                 if ( end instanceof Array ) {
9734     
9735                     _object[ property ] = _interpolationFunction( end, value );
9736     
9737                 } else {
9738     
9739                     _object[ property ] = start + ( end - start ) * value;
9740     
9741                 }
9742             }
9743     
9744             if (_onUpdateCallback !== null ) {
9745     
9746                 _onUpdateCallback.call( _object, value );
9747             }
9748     
9749             if ( elapsed == 1 ) {
9750     
9751                 if ( _onCompleteCallback !== null ) {
9752     
9753                     _onCompleteCallback.call( _object );
9754                 }
9755     
9756                 if ( _chainedTween !== null ) {
9757     
9758                     _chainedTween.start();
9759                 }
9760     
9761                 return false;
9762     
9763             }
9764     
9765             return true;
9766         }
9767     
9768     }
9769 
9770     /**
9771      * @name RiText_P5
9772      * @class
9773      * @private
9774      */
9775     var RiText_P5 = makeClass();
9776 
9777     RiText_P5.prototype = {
9778 
9779         initialize : function(p) {
9780             
9781             this.p = p;
9782         },
9783         
9784         _size : function() {
9785             
9786             return this.p.size.apply(this, arguments);
9787         },
9788         
9789         _getGraphics : function() {
9790             
9791             return this.p;
9792         },
9793         
9794         _pushState : function(str) {
9795             
9796             this.p.pushStyle();
9797             this.p.pushMatrix();
9798             return this;
9799         },
9800         
9801         _popState : function() {
9802             
9803             this.p.popStyle();
9804             this.p.popMatrix();
9805             return this;
9806         },
9807 
9808         _textAlign : function(align) {
9809             
9810             this.p.textAlign.apply(this,arguments);
9811             return this;
9812         },
9813         
9814         _scale : function(sx, sy) {
9815             
9816             this.p.scale(sx, sy, 1);
9817         },
9818         
9819         _translate : function(tx, ty) {
9820             
9821             this.p.translate(tx, ty, 0);
9822         },
9823         
9824         _rotate : function(zRot) {
9825  
9826             this.p.rotate(zRot);
9827         },
9828         
9829         _text : function(str, x, y) {
9830             
9831             this.p.text.apply(this,arguments);
9832         },
9833         
9834         _fill : function(r,g,b,a) {
9835             
9836             this.p.fill.apply(this,arguments);
9837         },
9838         
9839         _stroke : function(r,g,b,a) {
9840             
9841             this.p.stroke.apply(this,arguments);
9842         },
9843         
9844         _background : function(r,g,b,a) {
9845             
9846             this.p.background.apply(this,arguments);
9847         },
9848 
9849         // actual creation: only called from RiText.createDefaultFont();!
9850         _createFont : function(fontName, fontSize, leading) { // ignores leading
9851             
9852             //log("[P5] Creating font: "+fontName+"-"+fontSize+"/"+leading);
9853             return this.p.createFont(fontName, fontSize);                
9854         },
9855 
9856         _rect : function(x,y,w,h) {
9857             
9858             this.p.rect.apply(this,arguments);
9859         },
9860         
9861         _line : function(x1,y1,x2,y2,lw) {
9862             
9863             if (lw) p.strokeWeight(lw);
9864             this.p.line.apply(this,arguments);
9865         },
9866         
9867         _textFont : function(fontObj) {
9868             
9869             if (!Type.is(fontObj,O)) 
9870                 err("_textFont takes object!");
9871             this.p.textFont(fontObj, fontObj.size);
9872         },
9873         
9874         _textWidth : function(fontObj, str) {
9875             
9876             this.p.pushStyle();
9877             this.p.textFont(fontObj,fontObj.size); // was _textFont
9878             var tw = this.p.textWidth(str);
9879             this.p.popStyle();
9880             return tw;
9881         },
9882         
9883         _textHeight : function(rt) {
9884             
9885             return this._getBoundingBox(rt).height;
9886         },
9887         
9888         _textAscent : function(rt) {
9889             
9890             this.p.pushStyle();
9891             this.p.textFont(rt._font, rt._font.size);
9892             var asc = this.p.textAscent();
9893             this.p.popStyle();
9894             return asc;
9895         },
9896         
9897         _textDescent : function(rt) {
9898             
9899             this.p.pushStyle();
9900             this.p.textFont(rt._font, rt._font.size);
9901             var dsc = this.p.textDescent();
9902             this.p.popStyle();
9903             return dsc;
9904         },
9905 
9906         _width : function() {
9907 
9908             return this.p.width;
9909         },
9910         
9911         _height : function() {
9912 
9913             return this.p.height;
9914         },
9915         
9916         // what about scale?
9917         _getBoundingBox : function(rt) {
9918             
9919             this.p.pushStyle();
9920             
9921             var ascent  =   Math.round(this.p.textAscent()),
9922                 descent =   Math.round(this.p.textDescent()),
9923                 width   =   Math.round(this.p.textWidth(rt.text()));
9924             
9925             this.p.popStyle();
9926             
9927             return { x: 0, y: descent-1, width: width, height: (ascent+descent)+1 };
9928         },
9929         
9930         _type : function() {
9931             
9932             return "Processing";
9933         },
9934         
9935         toString : function() {
9936             
9937             return "RiText_"+this._type;
9938         }
9939     }
9940     
9941     ////////////////////////////////// End Classes ///////////////////////////////////
9942 
9943     // TODO: clean this mess up... wrap in Constants
9944     
9945     var QUESTION_STARTS = ["Was", "What", "When", "Where", "How", "Which", "If", "Who", "Is", "Could", "Might", "Will", "Does", "Why", "Are" ];    
9946     
9947     var W_QUESTION_STARTS = ["Was", "What", "When", "Where", "How", "Which", "Why", "Who", "Will"];
9948     
9949     var PUNCTUATION_CLASS = /[-[\]{}()*+!?%&.,\\^$|#@<>|+=;:]/g, ONLY_PUNCT = /^[^0-9A-Za-z\s]*$/;
9950     
9951     var ALL_PUNCT = /^[-[\]{}()*+!?%&.,\\^$|#@<>|+=;:]+$/g, DeLiM = ':DeLiM:', RiTextCallbacksDisabled = false;
9952     
9953     var SP = ' ', E = '', N = Type.N, S = Type.S, O = Type.O, A = Type.A, B = Type.B, R = Type.R, F = Type.F;
9954     
9955     var DEFAULT_PLURAL_RULE = RegexRule("^((\\w+)(-\\w+)*)(\\s((\\w+)(-\\w+)*))*$", 0, "s");
9956     
9957     var PLURAL_RULES = [
9958             RegexRule("^(piano|photo|solo|ego|tobacco|cargo|golf|grief)$", 0, "s"),
9959             RegexRule("^(wildlife)$", 0, "s"),
9960             RegexRule("[bcdfghjklmnpqrstvwxyz]o$", 0, "es"),
9961             RegexRule("[bcdfghjklmnpqrstvwxyz]y$", 1, "ies"),
9962             RegexRule("([zsx]|ch|sh)$", 0, "es"),
9963             RegexRule("[lraeiou]fe$", 2, "ves"),
9964             RegexRule("[lraeiou]f$", 1, "ves"),
9965             RegexRule("(eu|eau)$", 0, "x"),
9966             RegexRule("(man|woman)$", 2, "en"),
9967             RegexRule("money$", 2, "ies"),
9968             RegexRule("person$", 4, "ople"),
9969             RegexRule("motif$", 0, "s"),
9970             RegexRule("^meninx|phalanx$", 1, "ges"),
9971             RegexRule("(xis|sis)$", 2, "es"),
9972             RegexRule("schema$", 0, "ta"),
9973             RegexRule("^bus$", 0, "ses"),
9974             RegexRule("child$", 0, "ren"),
9975             RegexRule("^(curi|formul|vertebr|larv|uln|alumn|signor|alg)a$", 0, "e"),
9976             RegexRule("^corpus$", 2, "ora"),
9977             RegexRule("^(maharaj|raj|myn|mull)a$", 0, "hs"),
9978             RegexRule("^aide-de-camp$", 8, "s-de-camp"),
9979             RegexRule("^apex|cortex$", 2, "ices"),
9980             RegexRule("^weltanschauung$", 0, "en"),
9981             RegexRule("^lied$", 0, "er"),
9982             RegexRule("^tooth$", 4, "eeth"),
9983             RegexRule("^[lm]ouse$", 4, "ice"),
9984             RegexRule("^foot$", 3, "eet"),
9985             RegexRule("femur", 2, "ora"),
9986             RegexRule("goose", 4, "eese"),
9987             RegexRule("(human|german|roman)$", 0, "s"),
9988             RegexRule("(crisis)$", 2, "es"),
9989             RegexRule("^(monarch|loch|stomach)$", 0, "s"),
9990             RegexRule("^(taxi|chief|proof|ref|relief|roof|belief)$", 0, "s"),
9991             RegexRule("^(co|no)$", 0, "'s"),
9992             RegexRule("^(memorandum|bacterium|curriculum|minimum|"
9993                 + "maximum|referendum|spectrum|phenomenon|criterion)$", 2, "a"),
9994                 RegexRule("^(appendix|index|matrix)", 2, "ices"),
9995                 RegexRule("^(stimulus|alumnus)$", 2, "i"),
9996                 RegexRule(
9997                     "^(Bantu|Bengalese|Bengali|Beninese|Boche|bonsai|"
9998                     + "Burmese|Chinese|Congolese|Gabonese|Guyanese|Japanese|Javanese|"
9999                     + "Lebanese|Maltese|Olympics|Portuguese|Senegalese|Siamese|Singhalese|"
10000                     + "Sinhalese|Sioux|Sudanese|Swiss|Taiwanese|Togolese|Vietnamese|aircraft|"
10001                     + "anopheles|apparatus|asparagus|barracks|bellows|bison|bluefish|bob|bourgeois|"
10002                     + "bream|brill|butterfingers|carp|catfish|chassis|clothes|chub|cod|codfish|"
10003                     + "coley|contretemps|corps|crawfish|crayfish|crossroads|cuttlefish|dace|dice|"
10004                     + "dogfish|doings|dory|downstairs|eldest|earnings|economics|electronics|finnan|"
10005                     + "firstborn|fish|flatfish|flounder|fowl|fry|fries|works|globefish|goldfish|"
10006                     + "grand|gudgeon|gulden|haddock|hake|halibut|headquarters|herring|hertz|horsepower|"
10007                     + "goods|hovercraft|hundredweight|ironworks|jackanapes|kilohertz|kurus|kwacha|ling|lungfish|"
10008                     + "mackerel|means|megahertz|moorfowl|moorgame|mullet|nepalese|offspring|pampas|parr|(pants$)|"
10009                     + "patois|pekinese|penn'orth|perch|pickerel|pike|pince-nez|plaice|precis|quid|rand|"
10010                     + "rendezvous|revers|roach|roux|salmon|samurai|series|seychelles|seychellois|shad|"
10011                     + "sheep|shellfish|smelt|spacecraft|species|starfish|stockfish|sunfish|superficies|"
10012                     + "sweepstakes|swordfish|tench|tennis|tope|triceps|trout|tuna|tunafish|tunny|turbot|trousers|"
10013                     + "undersigned|veg|waterfowl|waterworks|waxworks|whiting|wildfowl|woodworm|"
10014                     + "yen|aries|pisces|forceps|lieder|jeans|physics|mathematics|news|odds|politics|remains|"
10015                     + "surroundings|thanks|statistics|goods|aids)$", 0, "", 0) 
10016             ],
10017             ANY_STEM = "^((\\w+)(-\\w+)*)(\\s((\\w+)(-\\w+)*))*$", CONS = "[bcdfghjklmnpqrstvwxyz]",
10018             VERBAL_PREFIX = "((be|with|pre|un|over|re|mis|under|out|up|fore|for|counter|co|sub)(-?))",
10019 
10020             AUXILIARIES = [ "do", "have", "be" ],
10021             MODALS = [ "shall", "would", "may", "might", "ought", "should" ],
10022             // also used by pluralizer
10023             SYMBOLS = [ "!", "?", "$", "%", "*", "+", "-", "=" ],
10024 
10025             ING_FORM_RULES = [ 
10026                                   RegexRule(CONS + "ie$", 2, "ying", 1),
10027                                   RegexRule("[^ie]e$", 1, "ing", 1),
10028                                   RegexRule("^bog-down$", 5, "ging-down", 0),
10029                                   RegexRule("^chivy$", 1, "vying", 0),
10030                                   RegexRule("^gen-up$", 3, "ning-up", 0),
10031                                   RegexRule("^trek$", 1, "cking", 0), RegexRule("^ko$", 0, "'ing", 0),
10032                                   RegexRule("^(age|be)$", 0, "ing", 0), RegexRule("(ibe)$", 1, "ing", 0) 
10033                               ],
10034 
10035         PAST_PARTICIPLE_RULES = [ RegexRule("e$", 0, "d", 1),
10036             RegexRule(CONS + "y$", 1, "ied", 1),
10037             RegexRule("^" + VERBAL_PREFIX + "?(bring)$", 3, "ought", 0),
10038             RegexRule(
10039                 "^"
10040                 + VERBAL_PREFIX
10041                 + "?(take|rise|strew|blow|draw|drive|know|give|"
10042                 + "arise|gnaw|grave|grow|hew|know|mow|see|sew|throw|prove|saw|quartersaw|"
10043                 + "partake|sake|shake|shew|show|shrive|sightsee|strew|strive)$",
10044                 0, "n", 0),
10045             RegexRule("^" + VERBAL_PREFIX + "?[gd]o$", 0, "ne", 1),
10046             RegexRule("^(beat|eat|be|fall)$", 0, "en", 0),
10047             RegexRule("^(have)$", 2, "d", 0),
10048             RegexRule("^" + VERBAL_PREFIX + "?bid$", 0, "den", 0),
10049             RegexRule("^" + VERBAL_PREFIX + "?[lps]ay$", 1, "id", 1),
10050             RegexRule("^behave$", 0, "d", 0),
10051             RegexRule("^" + VERBAL_PREFIX + "?have$", 2, "d", 1),
10052             RegexRule("(sink|slink|drink)$", 3, "unk", 0),
10053             RegexRule("(([sfc][twlp]?r?|w?r)ing|hang)$", 3, "ung", 0),
10054             RegexRule("^" + VERBAL_PREFIX + "?(shear|swear|bear|wear|tear)$",3,"orn",0),
10055             RegexRule("^" + VERBAL_PREFIX + "?(bend|spend|send|lend)$", 1, "t", 0),
10056             RegexRule("^" + VERBAL_PREFIX + "?(weep|sleep|sweep|creep|keep$)$", 2,"pt", 0),
10057             RegexRule("^" + VERBAL_PREFIX + "?(sell|tell)$", 3, "old", 0),
10058             RegexRule("^(outfight|beseech)$", 4, "ought", 0),
10059             RegexRule("^bethink$", 3, "ought", 0),
10060             RegexRule("^buy$", 2, "ought", 0),
10061             RegexRule("^aby$", 1, "ought", 0),
10062             RegexRule("^tarmac", 0, "ked", 0),
10063             RegexRule("^abide$", 3, "ode", 0),
10064             RegexRule("^" + VERBAL_PREFIX + "?(speak|(a?)wake|break)$", 3, "oken", 0),
10065             RegexRule("^backbite$", 1, "ten", 0),
10066             RegexRule("^backslide$", 1, "den", 0),
10067             RegexRule("^become$", 3, "ame", 0),
10068             RegexRule("^begird$", 3, "irt", 0),
10069             RegexRule("^outlie$", 2, "ay", 0),
10070             RegexRule("^rebind$", 3, "ound", 0),
10071             RegexRule("^relay$", 2, "aid", 0),
10072             RegexRule("^shit$", 3, "hat", 0),
10073             RegexRule("^bereave$", 4, "eft", 0),
10074             RegexRule("^foreswear$", 3, "ore", 0),
10075             RegexRule("^overfly$", 1, "own", 0),
10076             RegexRule("^beget$", 2, "otten", 0),
10077             RegexRule("^begin$", 3, "gun", 0),
10078             RegexRule("^bestride$", 1, "den", 0),
10079             RegexRule("^bite$", 1, "ten", 0),
10080             RegexRule("^bleed$", 4, "led", 0),
10081             RegexRule("^bog-down$", 5, "ged-down", 0),
10082             RegexRule("^bind$", 3, "ound", 0),
10083             RegexRule("^(.*)feed$", 4, "fed", 0),
10084             RegexRule("^breed$", 4, "red", 0),
10085             RegexRule("^brei", 0, "d", 0),
10086             RegexRule("^bring$", 3, "ought", 0),
10087             RegexRule("^build$", 1, "t", 0),
10088             RegexRule("^come", 0, "", 0),
10089             RegexRule("^catch$", 3, "ught", 0),
10090             RegexRule("^chivy$", 1, "vied", 0),
10091             RegexRule("^choose$", 3, "sen", 0),
10092             RegexRule("^cleave$", 4, "oven", 0),
10093             RegexRule("^crossbreed$", 4, "red", 0),
10094             RegexRule("^deal", 0, "t", 0),
10095             RegexRule("^dow$", 1, "ught", 0),
10096             RegexRule("^dream", 0, "t", 0),
10097             RegexRule("^dig$", 3, "dug", 0),
10098             RegexRule("^dwell$", 2, "lt", 0),
10099             RegexRule("^enwind$", 3, "ound", 0),
10100             RegexRule("^feel$", 3, "elt", 0),
10101             RegexRule("^flee$", 2, "ed", 0),
10102             RegexRule("^floodlight$", 5, "lit", 0),
10103             RegexRule("^fly$", 1, "own", 0),
10104             RegexRule("^forbear$", 3, "orne", 0),
10105             RegexRule("^forerun$", 3, "ran", 0),
10106             RegexRule("^forget$", 2, "otten", 0),
10107             RegexRule("^fight$", 4, "ought", 0),
10108             RegexRule("^find$", 3, "ound", 0),
10109             RegexRule("^freeze$", 4, "ozen", 0),
10110             RegexRule("^gainsay$", 2, "aid", 0),
10111             RegexRule("^gin$", 3, "gan", 0),
10112             RegexRule("^gen-up$", 3, "ned-up", 0),
10113             RegexRule("^ghostwrite$", 1, "ten", 0),
10114             RegexRule("^get$", 2, "otten", 0),
10115             RegexRule("^grind$", 3, "ound", 0),
10116             RegexRule("^hacksaw", 0, "n", 0),
10117             RegexRule("^hear", 0, "d", 0),
10118             RegexRule("^hold$", 3, "eld", 0),
10119             RegexRule("^hide$", 1, "den", 0),
10120             RegexRule("^honey$", 2, "ied", 0),
10121             RegexRule("^inbreed$", 4, "red", 0),
10122             RegexRule("^indwell$", 3, "elt", 0),
10123             RegexRule("^interbreed$", 4, "red", 0),
10124             RegexRule("^interweave$", 4, "oven", 0),
10125             RegexRule("^inweave$", 4, "oven", 0),
10126             RegexRule("^ken$", 2, "ent", 0),
10127             RegexRule("^kneel$", 3, "elt", 0),
10128             RegexRule("^lie$", 2, "ain", 0),
10129             RegexRule("^leap$", 0, "t", 0),
10130             RegexRule("^learn$", 0, "t", 0),
10131             RegexRule("^lead$", 4, "led", 0),
10132             RegexRule("^leave$", 4, "eft", 0),
10133             RegexRule("^light$", 5, "lit", 0),
10134             RegexRule("^lose$", 3, "ost", 0),
10135             RegexRule("^make$", 3, "ade", 0),
10136             RegexRule("^mean", 0, "t", 0),
10137             RegexRule("^meet$", 4, "met", 0),
10138             RegexRule("^misbecome$", 3, "ame", 0),
10139             RegexRule("^misdeal$", 2, "alt", 0),
10140             RegexRule("^mishear$", 1, "d", 0),
10141             RegexRule("^mislead$", 4, "led", 0),
10142             RegexRule("^misunderstand$", 3, "ood", 0),
10143             RegexRule("^outbreed$", 4, "red", 0),
10144             RegexRule("^outrun$", 3, "ran", 0),
10145             RegexRule("^outride$", 1, "den", 0),
10146             RegexRule("^outshine$", 3, "one", 0),
10147             RegexRule("^outshoot$", 4, "hot", 0),
10148             RegexRule("^outstand$", 3, "ood", 0),
10149             RegexRule("^outthink$", 3, "ought", 0),
10150             RegexRule("^outgo$", 2, "went", 0),
10151             RegexRule("^overbear$", 3, "orne", 0),
10152             RegexRule("^overbuild$", 3, "ilt", 0),
10153             RegexRule("^overcome$", 3, "ame", 0),
10154             RegexRule("^overfly$", 2, "lew", 0),
10155             RegexRule("^overhear$", 2, "ard", 0),
10156             RegexRule("^overlie$", 2, "ain", 0),
10157             RegexRule("^overrun$", 3, "ran", 0),
10158             RegexRule("^override$", 1, "den", 0),
10159             RegexRule("^overshoot$", 4, "hot", 0),
10160             RegexRule("^overwind$", 3, "ound", 0),
10161             RegexRule("^overwrite$", 1, "ten", 0),
10162             RegexRule("^run$", 3, "ran", 0),
10163             RegexRule("^rebuild$", 3, "ilt", 0),
10164             RegexRule("^red$", 3, "red", 0),
10165             RegexRule("^redo$", 1, "one", 0),
10166             RegexRule("^remake$", 3, "ade", 0),
10167             RegexRule("^rerun$", 3, "ran", 0),
10168             RegexRule("^resit$", 3, "sat", 0),
10169             RegexRule("^rethink$", 3, "ought", 0),
10170             RegexRule("^rewind$", 3, "ound", 0),
10171             RegexRule("^rewrite$", 1, "ten", 0),
10172             RegexRule("^ride$", 1, "den", 0),
10173             RegexRule("^reeve$", 4, "ove", 0),
10174             RegexRule("^sit$", 3, "sat", 0),
10175             RegexRule("^shoe$", 3, "hod", 0),
10176             RegexRule("^shine$", 3, "one", 0),
10177             RegexRule("^shoot$", 4, "hot", 0),
10178             RegexRule("^ski$", 1, "i'd", 0),
10179             RegexRule("^slide$", 1, "den", 0),
10180             RegexRule("^smite$", 1, "ten", 0),
10181             RegexRule("^seek$", 3, "ought", 0),
10182             RegexRule("^spit$", 3, "pat", 0),
10183             RegexRule("^speed$", 4, "ped", 0),
10184             RegexRule("^spellbind$", 3, "ound", 0),
10185             RegexRule("^spoil$", 2, "ilt", 0),
10186             RegexRule("^spotlight$", 5, "lit", 0),
10187             RegexRule("^spin$", 3, "pun", 0),
10188             RegexRule("^steal$", 3, "olen", 0),
10189             RegexRule("^stand$", 3, "ood", 0),
10190             RegexRule("^stave$", 3, "ove", 0),
10191             RegexRule("^stride$", 1, "den", 0),
10192             RegexRule("^strike$", 3, "uck", 0),
10193             RegexRule("^stick$", 3, "uck", 0),
10194             RegexRule("^swell$", 3, "ollen", 0),
10195             RegexRule("^swim$", 3, "wum", 0),
10196             RegexRule("^teach$", 4, "aught", 0),
10197             RegexRule("^think$", 3, "ought", 0),
10198             RegexRule("^tread$", 3, "odden", 0),
10199             RegexRule("^typewrite$", 1, "ten", 0),
10200             RegexRule("^unbind$", 3, "ound", 0),
10201             RegexRule("^underbuy$", 2, "ought", 0),
10202             RegexRule("^undergird$", 3, "irt", 0),
10203             RegexRule("^undergo$", 1, "one", 0),
10204             RegexRule("^underlie$", 2, "ain", 0),
10205             RegexRule("^undershoot$", 4, "hot", 0),
10206             RegexRule("^understand$", 3, "ood", 0),
10207             RegexRule("^unfreeze$", 4, "ozen", 0),
10208             RegexRule("^unlearn", 0, "t", 0),
10209             RegexRule("^unmake$", 3, "ade", 0),
10210             RegexRule("^unreeve$", 4, "ove", 0),
10211             RegexRule("^unstick$", 3, "uck", 0),
10212             RegexRule("^unteach$", 4, "aught", 0),
10213             RegexRule("^unthink$", 3, "ought", 0),
10214             RegexRule("^untread$", 3, "odden", 0),
10215             RegexRule("^unwind$", 3, "ound", 0),
10216             RegexRule("^upbuild$", 1, "t", 0),
10217             RegexRule("^uphold$", 3, "eld", 0),
10218             RegexRule("^upheave$", 4, "ove", 0),
10219             RegexRule("^waylay$", 2, "ain", 0),
10220             RegexRule("^whipsaw$", 2, "awn", 0),
10221             RegexRule("^withhold$", 3, "eld", 0),
10222             RegexRule("^withstand$", 3, "ood", 0),
10223             RegexRule("^win$", 3, "won", 0),
10224             RegexRule("^wind$", 3, "ound", 0),
10225             RegexRule("^weave$", 4, "oven", 0),
10226             RegexRule("^write$", 1, "ten", 0),
10227             RegexRule("^trek$", 1, "cked", 0),
10228             RegexRule("^ko$", 1, "o'd", 0),
10229             RegexRule("^win$", 2, "on", 0),
10230             
10231             // Null past forms
10232             RegexRule(
10233                 "^"
10234             + VERBAL_PREFIX
10235             + "?(cast|thrust|typeset|cut|bid|upset|wet|bet|cut|hit|hurt|inset|let|cost|burst|beat|beset|set|upset|hit|offset|put|quit|"
10236             + "wed|typeset|wed|spread|split|slit|read|run|shut|shed)$", 0,
10237             "", 0) ],
10238             
10239         PAST_TENSE_RULES = [
10240                             RegexRule("^(reduce)$", 0, "d", 0),
10241             RegexRule("e$", 0, "d", 1),
10242             RegexRule("^" + VERBAL_PREFIX + "?[pls]ay$", 1, "id", 1),
10243             RegexRule(CONS + "y$", 1, "ied", 1),
10244             RegexRule("^(fling|cling|hang)$", 3, "ung", 0),
10245             RegexRule("(([sfc][twlp]?r?|w?r)ing)$", 3, "ang", 1),
10246             RegexRule("^" + VERBAL_PREFIX + "?(bend|spend|send|lend|spend)$", 1, "t", 0),
10247             RegexRule("^" + VERBAL_PREFIX + "?lie$", 2, "ay", 0),
10248             RegexRule("^" + VERBAL_PREFIX + "?(weep|sleep|sweep|creep|keep)$", 2, "pt",
10249             0),
10250             RegexRule("^" + VERBAL_PREFIX + "?(sell|tell)$", 3, "old", 0),
10251             RegexRule("^" + VERBAL_PREFIX + "?do$", 1, "id", 0),
10252             RegexRule("^" + VERBAL_PREFIX + "?dig$", 2, "ug", 0),
10253             RegexRule("^behave$", 0, "d", 0),
10254             RegexRule("^(have)$", 2, "d", 0),
10255             RegexRule("(sink|drink)$", 3, "ank", 0),
10256             RegexRule("^swing$", 3, "ung", 0),
10257             RegexRule("^be$", 2, "was", 0),
10258             RegexRule("^outfight$", 4, "ought", 0),
10259             RegexRule("^tarmac", 0, "ked", 0),
10260             RegexRule("^abide$", 3, "ode", 0),
10261             RegexRule("^aby$", 1, "ought", 0),
10262             RegexRule("^become$", 3, "ame", 0),
10263             RegexRule("^begird$", 3, "irt", 0),
10264             RegexRule("^outlie$", 2, "ay", 0),
10265             RegexRule("^rebind$", 3, "ound", 0),
10266             RegexRule("^shit$", 3, "hat", 0),
10267             RegexRule("^bereave$", 4, "eft", 0),
10268             RegexRule("^foreswear$", 3, "ore", 0),
10269             RegexRule("^bename$", 3, "empt", 0),
10270             RegexRule("^beseech$", 4, "ought", 0),
10271             RegexRule("^bethink$", 3, "ought", 0),
10272             RegexRule("^bleed$", 4, "led", 0),
10273             RegexRule("^bog-down$", 5, "ged-down", 0),
10274             RegexRule("^buy$", 2, "ought", 0),
10275             RegexRule("^bind$", 3, "ound", 0),
10276             RegexRule("^(.*)feed$", 4, "fed", 0),
10277             RegexRule("^breed$", 4, "red", 0),
10278             RegexRule("^brei$", 2, "eid", 0),
10279             RegexRule("^bring$", 3, "ought", 0),
10280             RegexRule("^build$", 3, "ilt", 0),
10281             RegexRule("^come$", 3, "ame", 0),
10282             RegexRule("^catch$", 3, "ught", 0),
10283             RegexRule("^clothe$", 5, "lad", 0),
10284             RegexRule("^crossbreed$", 4, "red", 0),
10285             RegexRule("^deal$", 2, "alt", 0),
10286             RegexRule("^dow$", 1, "ught", 0),
10287             RegexRule("^dream$", 2, "amt", 0),
10288             RegexRule("^dwell$", 3, "elt", 0),
10289             RegexRule("^enwind$", 3, "ound", 0),
10290             RegexRule("^feel$", 3, "elt", 0),
10291             RegexRule("^flee$", 3, "led", 0),
10292             RegexRule("^floodlight$", 5, "lit", 0),
10293             RegexRule("^arise$", 3, "ose", 0),
10294             RegexRule("^eat$", 3, "ate", 0),
10295             RegexRule("^awake$", 3, "oke", 0),
10296             RegexRule("^backbite$", 4, "bit", 0),
10297             RegexRule("^backslide$", 4, "lid", 0),
10298             RegexRule("^befall$", 3, "ell", 0),
10299             RegexRule("^begin$", 3, "gan", 0),
10300             RegexRule("^beget$", 3, "got", 0),
10301             RegexRule("^behold$", 3, "eld", 0),
10302             RegexRule("^bespeak$", 3, "oke", 0),
10303             RegexRule("^bestride$", 3, "ode", 0),
10304             RegexRule("^betake$", 3, "ook", 0),
10305             RegexRule("^bite$", 4, "bit", 0),
10306             RegexRule("^blow$", 3, "lew", 0),
10307             RegexRule("^bear$", 3, "ore", 0),
10308             RegexRule("^break$", 3, "oke", 0),
10309             RegexRule("^choose$", 4, "ose", 0),
10310             RegexRule("^cleave$", 4, "ove", 0),
10311             RegexRule("^countersink$", 3, "ank", 0),
10312             RegexRule("^drink$", 3, "ank", 0),
10313             RegexRule("^draw$", 3, "rew", 0),
10314             RegexRule("^drive$", 3, "ove", 0),
10315             RegexRule("^fall$", 3, "ell", 0),
10316             RegexRule("^fly$", 2, "lew", 0),
10317             RegexRule("^flyblow$", 3, "lew", 0),
10318             RegexRule("^forbid$", 2, "ade", 0),
10319             RegexRule("^forbear$", 3, "ore", 0),
10320             RegexRule("^foreknow$", 3, "new", 0),
10321             RegexRule("^foresee$", 3, "saw", 0),
10322             RegexRule("^forespeak$", 3, "oke", 0),
10323             RegexRule("^forego$", 2, "went", 0),
10324             RegexRule("^forgive$", 3, "ave", 0),
10325             RegexRule("^forget$", 3, "got", 0),
10326             RegexRule("^forsake$", 3, "ook", 0),
10327             RegexRule("^forspeak$", 3, "oke", 0),
10328             RegexRule("^forswear$", 3, "ore", 0),
10329             RegexRule("^forgo$", 2, "went", 0),
10330             RegexRule("^fight$", 4, "ought", 0),
10331             RegexRule("^find$", 3, "ound", 0),
10332             RegexRule("^freeze$", 4, "oze", 0),
10333             RegexRule("^give$", 3, "ave", 0),
10334             RegexRule("^geld$", 3, "elt", 0),
10335             RegexRule("^gen-up$", 3, "ned-up", 0),
10336             RegexRule("^ghostwrite$", 3, "ote", 0),
10337             RegexRule("^get$", 3, "got", 0),
10338             RegexRule("^grow$", 3, "rew", 0),
10339             RegexRule("^grind$", 3, "ound", 0),
10340             RegexRule("^hear$", 2, "ard", 0),
10341             RegexRule("^hold$", 3, "eld", 0),
10342             RegexRule("^hide$", 4, "hid", 0),
10343             RegexRule("^honey$", 2, "ied", 0),
10344             RegexRule("^inbreed$", 4, "red", 0),
10345             RegexRule("^indwell$", 3, "elt", 0),
10346             RegexRule("^interbreed$", 4, "red", 0),
10347             RegexRule("^interweave$", 4, "ove", 0),
10348             RegexRule("^inweave$", 4, "ove", 0),
10349             RegexRule("^ken$", 2, "ent", 0),
10350             RegexRule("^kneel$", 3, "elt", 0),
10351             RegexRule("^^know$$", 3, "new", 0),
10352             RegexRule("^leap$", 2, "apt", 0),
10353             RegexRule("^learn$", 2, "rnt", 0),
10354             RegexRule("^lead$", 4, "led", 0),
10355             RegexRule("^leave$", 4, "eft", 0),
10356             RegexRule("^light$", 5, "lit", 0),
10357             RegexRule("^lose$", 3, "ost", 0),
10358             RegexRule("^make$", 3, "ade", 0),
10359             RegexRule("^mean$", 2, "ant", 0),
10360             RegexRule("^meet$", 4, "met", 0),
10361             RegexRule("^misbecome$", 3, "ame", 0),
10362             RegexRule("^misdeal$", 2, "alt", 0),
10363             RegexRule("^misgive$", 3, "ave", 0),
10364             RegexRule("^mishear$", 2, "ard", 0),
10365             RegexRule("^mislead$", 4, "led", 0),
10366             RegexRule("^mistake$", 3, "ook", 0),
10367             RegexRule("^misunderstand$", 3, "ood", 0),
10368             RegexRule("^outbreed$", 4, "red", 0),
10369             RegexRule("^outgrow$", 3, "rew", 0),
10370             RegexRule("^outride$", 3, "ode", 0),
10371             RegexRule("^outshine$", 3, "one", 0),
10372             RegexRule("^outshoot$", 4, "hot", 0),
10373             RegexRule("^outstand$", 3, "ood", 0),
10374             RegexRule("^outthink$", 3, "ought", 0),
10375             RegexRule("^outgo$", 2, "went", 0),
10376             RegexRule("^outwear$", 3, "ore", 0),
10377             RegexRule("^overblow$", 3, "lew", 0),
10378             RegexRule("^overbear$", 3, "ore", 0),
10379             RegexRule("^overbuild$", 3, "ilt", 0),
10380             RegexRule("^overcome$", 3, "ame", 0),
10381             RegexRule("^overdraw$", 3, "rew", 0),
10382             RegexRule("^overdrive$", 3, "ove", 0),
10383             RegexRule("^overfly$", 2, "lew", 0),
10384             RegexRule("^overgrow$", 3, "rew", 0),
10385             RegexRule("^overhear$", 2, "ard", 0),
10386             RegexRule("^overpass$", 3, "ast", 0),
10387             RegexRule("^override$", 3, "ode", 0),
10388             RegexRule("^oversee$", 3, "saw", 0),
10389             RegexRule("^overshoot$", 4, "hot", 0),
10390             RegexRule("^overthrow$", 3, "rew", 0),
10391             RegexRule("^overtake$", 3, "ook", 0),
10392             RegexRule("^overwind$", 3, "ound", 0),
10393             RegexRule("^overwrite$", 3, "ote", 0),
10394             RegexRule("^partake$", 3, "ook", 0),
10395             RegexRule("^" + VERBAL_PREFIX + "?run$", 2, "an", 0),
10396             RegexRule("^ring$", 3, "ang", 0),
10397             RegexRule("^rebuild$", 3, "ilt", 0),
10398             RegexRule("^red", 0, "", 0),
10399             RegexRule("^reave$", 4, "eft", 0),
10400             RegexRule("^remake$", 3, "ade", 0),
10401             RegexRule("^resit$", 3, "sat", 0),
10402             RegexRule("^rethink$", 3, "ought", 0),
10403             RegexRule("^retake$", 3, "ook", 0),
10404             RegexRule("^rewind$", 3, "ound", 0),
10405             RegexRule("^rewrite$", 3, "ote", 0),
10406             RegexRule("^ride$", 3, "ode", 0),
10407             RegexRule("^rise$", 3, "ose", 0),
10408             RegexRule("^reeve$", 4, "ove", 0),
10409             RegexRule("^sing$", 3, "ang", 0),
10410             RegexRule("^sink$", 3, "ank", 0),
10411             RegexRule("^sit$", 3, "sat", 0),
10412             RegexRule("^see$", 3, "saw", 0),
10413             RegexRule("^shoe$", 3, "hod", 0),
10414             RegexRule("^shine$", 3, "one", 0),
10415             RegexRule("^shake$", 3, "ook", 0),
10416             RegexRule("^shoot$", 4, "hot", 0),
10417             RegexRule("^shrink$", 3, "ank", 0),
10418             RegexRule("^shrive$", 3, "ove", 0),
10419             RegexRule("^sightsee$", 3, "saw", 0),
10420             RegexRule("^ski$", 1, "i'd", 0),
10421             RegexRule("^skydive$", 3, "ove", 0),
10422             RegexRule("^slay$", 3, "lew", 0),
10423             RegexRule("^slide$", 4, "lid", 0),
10424             RegexRule("^slink$", 3, "unk", 0),
10425             RegexRule("^smite$", 4, "mit", 0),
10426             RegexRule("^seek$", 3, "ought", 0),
10427             RegexRule("^spit$", 3, "pat", 0),
10428             RegexRule("^speed$", 4, "ped", 0),
10429             RegexRule("^spellbind$", 3, "ound", 0),
10430             RegexRule("^spoil$", 2, "ilt", 0),
10431             RegexRule("^speak$", 3, "oke", 0),
10432             RegexRule("^spotlight$", 5, "lit", 0),
10433             RegexRule("^spring$", 3, "ang", 0),
10434             RegexRule("^spin$", 3, "pun", 0),
10435             RegexRule("^stink$", 3, "ank", 0),
10436             RegexRule("^steal$", 3, "ole", 0),
10437             RegexRule("^stand$", 3, "ood", 0),
10438             RegexRule("^stave$", 3, "ove", 0),
10439             RegexRule("^stride$", 3, "ode", 0),
10440             RegexRule("^strive$", 3, "ove", 0),
10441             RegexRule("^strike$", 3, "uck", 0),
10442             RegexRule("^stick$", 3, "uck", 0),
10443             RegexRule("^swim$", 3, "wam", 0),
10444             RegexRule("^swear$", 3, "ore", 0),
10445             RegexRule("^teach$", 4, "aught", 0),
10446             RegexRule("^think$", 3, "ought", 0),
10447             RegexRule("^throw$", 3, "rew", 0),
10448             RegexRule("^take$", 3, "ook", 0),
10449             RegexRule("^tear$", 3, "ore", 0),
10450             RegexRule("^transship$", 4, "hip", 0),
10451             RegexRule("^tread$", 4, "rod", 0),
10452             RegexRule("^typewrite$", 3, "ote", 0),
10453             RegexRule("^unbind$", 3, "ound", 0),
10454             RegexRule("^unclothe$", 5, "lad", 0),
10455             RegexRule("^underbuy$", 2, "ought", 0),
10456             RegexRule("^undergird$", 3, "irt", 0),
10457             RegexRule("^undershoot$", 4, "hot", 0),
10458             RegexRule("^understand$", 3, "ood", 0),
10459             RegexRule("^undertake$", 3, "ook", 0),
10460             RegexRule("^undergo$", 2, "went", 0),
10461             RegexRule("^underwrite$", 3, "ote", 0),
10462             RegexRule("^unfreeze$", 4, "oze", 0),
10463             RegexRule("^unlearn$", 2, "rnt", 0),
10464             RegexRule("^unmake$", 3, "ade", 0),
10465             RegexRule("^unreeve$", 4, "ove", 0),
10466             RegexRule("^unspeak$", 3, "oke", 0),
10467             RegexRule("^unstick$", 3, "uck", 0),
10468             RegexRule("^unswear$", 3, "ore", 0),
10469             RegexRule("^unteach$", 4, "aught", 0),
10470             RegexRule("^unthink$", 3, "ought", 0),
10471             RegexRule("^untread$", 4, "rod", 0),
10472             RegexRule("^unwind$", 3, "ound", 0),
10473             RegexRule("^upbuild$", 3, "ilt", 0),
10474             RegexRule("^uphold$", 3, "eld", 0),
10475             RegexRule("^upheave$", 4, "ove", 0),
10476             RegexRule("^uprise$", 3, "ose", 0),
10477             RegexRule("^upspring$", 3, "ang", 0),
10478             RegexRule("^go$", 2, "went", 0),
10479             RegexRule("^wiredraw$", 3, "rew", 0),
10480             RegexRule("^withdraw$", 3, "rew", 0),
10481             RegexRule("^withhold$", 3, "eld", 0),
10482             RegexRule("^withstand$", 3, "ood", 0),
10483             RegexRule("^wake$", 3, "oke", 0),
10484             RegexRule("^win$", 3, "won", 0),
10485             RegexRule("^wear$", 3, "ore", 0),
10486             RegexRule("^wind$", 3, "ound", 0),
10487             RegexRule("^weave$", 4, "ove", 0),
10488             RegexRule("^write$", 3, "ote", 0),
10489             RegexRule("^trek$", 1, "cked", 0),
10490             RegexRule("^ko$", 1, "o'd", 0),
10491             RegexRule("^bid", 2, "ade", 0),
10492             RegexRule("^win$", 2, "on", 0),
10493             RegexRule("^swim", 2, "am", 0),
10494             // Null past forms
10495             RegexRule("^" + VERBAL_PREFIX
10496                 + "?(cast|thrust|typeset|cut|bid|upset|wet|bet|cut|hit|hurt|inset|"
10497                 + "let|cost|burst|beat|beset|set|upset|offset|put|quit|wed|typeset|"
10498                 + "wed|spread|split|slit|read|run|shut|shed|lay)$", 0, "", 0) ],
10499 
10500         PRESENT_TENSE_RULES = [ 
10501             RegexRule("^aby$", 0, "es", 0),
10502             RegexRule("^bog-down$", 5, "s-down", 0),
10503             RegexRule("^chivy$", 1, "vies", 0),
10504             RegexRule("^gen-up$", 3, "s-up", 0),
10505             RegexRule("^prologue$", 3, "gs", 0),
10506             RegexRule("^picknic$", 0, "ks", 0),
10507             //RegexRule("^swim$", 0, "s", 0), 
10508             RegexRule("^ko$", 0, "'s", 0),
10509             RegexRule("[osz]$", 0, "es", 1), 
10510             RegexRule("^have$", 2, "s", 0),
10511             RegexRule(CONS + "y$", 1, "ies", 1), 
10512             RegexRule("^be$", 2, "is"),
10513             RegexRule("([zsx]|ch|sh)$", 0, "es", 1) 
10514         ],
10515 
10516         VERB_CONS_DOUBLING = [ "abat", "abet", "abhor", "abut", "accur", "acquit", "adlib",
10517            "admit", "aerobat", "aerosol", "agendaset", "allot", "alot", "anagram",
10518            "annul", "appal", "apparel", "armbar", "aver", "babysit", "airdrop", "appal",
10519            "blackleg", "bobsled", "bur", "chum", "confab", "counterplot", "curet", "dib",
10520            "backdrop", "backfil", "backflip", "backlog", "backpedal", "backslap",
10521            "backstab", "bag", "balfun", "ballot", "ban", "bar", "barbel", "bareleg",
10522            "barrel", "bat", "bayonet", "becom", "bed", "bedevil", "bedwet", "beenhop",
10523            "befit", "befog", "beg", "beget", "begin", "bejewel", "bemedal", "benefit",
10524            "benum", "beset", "besot", "bestir", "bet", "betassel", "bevel", "bewig",
10525            "bib", "bid", "billet", "bin", "bip", "bit", "bitmap", "blab", "blag", "blam",
10526            "blan", "blat", "bles", "blim", "blip", "blob", "bloodlet", "blot", "blub",
10527            "blur", "bob", "bodypop", "bog", "booby-trap", "boobytrap", "booksel",
10528            "bootleg", "bop", "bot", "bowel", "bracket", "brag", "brig", "brim", "bud",
10529            "buffet", "bug", "bullshit", "bum", "bun", "bus", "but", "cab", "cabal", "cam",
10530            "can", "cancel", "cap", "caracol", "caravan", "carburet", "carnap", "carol",
10531            "carpetbag", "castanet", "cat", "catcal", "catnap", "cavil", "chan", "chanel",
10532            "channel", "chap", "char", "chargecap", "chat", "chin", "chip", "chir",
10533            "chirrup", "chisel", "chop", "chug", "chur", "clam", "clap", "clearcut",
10534            "clip", "clodhop", "clog", "clop", "closet", "clot", "club", "co-occur",
10535            "co-program", "co-refer", "co-run", "co-star", "cob", "cobweb", "cod", "coif",
10536            "com", "combat", "comit", "commit", "compel", "con", "concur", "confer",
10537            "confiscat", "control", "cop", "coquet", "coral", "corbel", "corral", "cosset",
10538            "cotransmit", "councel", "council", "counsel", "court-martial", "crab", "cram",
10539            "crap", "crib", "crop", "crossleg", "cub", "cudgel", "cum", "cun", "cup",
10540            "cut", "dab", "dag", "dam", "dan", "dap", "daysit", "de-control", "de-gazet",
10541            "de-hul", "de-instal", "de-mob", "de-program", "de-rig", "de-skil", "deadpan",
10542            "debag", "debar", "log", "decommit", "decontrol", "defer", "defog", "deg",
10543            "degas", "deinstal", "demit", "demob", "demur", "den", "denet", "depig",
10544            "depip", "depit", "der", "deskil", "deter", "devil", "diagram", "dial", "dig",
10545            "dim", "din", "dip", "disbar", "disbud", "discomfit", "disembed", "disembowel",
10546            "dishevel", "disinter", "dispel", "disprefer", "distil", "dog", "dognap",
10547            "don", "doorstep", "dot", "dowel", "drag", "drat", "driftnet", "distil",
10548            "egotrip", "enrol", "enthral", "extol", "fulfil", "gaffe", "golliwog", "idyl",
10549            "inspan", "drip", "drivel", "drop", "drub", "drug", "drum", "dub", "duel",
10550            "dun", "dybbuk", "earwig", "eavesdrop", "ecolabel", "eitherspigot",
10551            "electroblot", "embed", "emit", "empanel", "enamel", "endlabel", "endtrim",
10552            "enrol", "enthral", "entrammel", "entrap", "enwrap", "equal", "equip", "estop",
10553            "exaggerat", "excel", "expel", "extol", "fag", "fan", "farewel", "fat",
10554            "featherbed", "feget", "fet", "fib", "fig", "fin", "fingerspel", "fingertip",
10555            "fit", "flab", "flag", "flap", "flip", "flit", "flog", "flop", "fob", "focus",
10556            "fog", "footbal", "footslog", "fop", "forbid", "forget", "format",
10557            "fortunetel", "fot", "foxtrot", "frag", "freefal", "fret", "frig", "frip",
10558            "frog", "frug", "fuel", "fufil", "fulfil", "fullyfit", "fun", "funnel", "fur",
10559            "furpul", "gab", "gad", "gag", "gam", "gambol", "gap", "garot", "garrot",
10560            "gas", "gat", "gel", "gen", "get", "giftwrap", "gig", "gimbal", "gin", "glam",
10561            "glenden", "glendin", "globetrot", "glug", "glut", "gob", "goldpan", "goostep",
10562            "gossip", "grab", "gravel", "grid", "grin", "grip", "grit", "groundhop",
10563            "grovel", "grub", "gum", "gun", "gunrun", "gut", "gyp", "haircut", "ham",
10564            "han", "handbag", "handicap", "handknit", "handset", "hap", "hareleg", "hat",
10565            "headbut", "hedgehop", "hem", "hen", "hiccup", "highwal", "hip", "hit",
10566            "hobnob", "hog", "hop", "horsewhip", "hostel", "hot", "hotdog", "hovel", "hug",
10567            "hum", "humbug", "hup", "hushkit", "hut", "illfit", "imbed", "immunblot",
10568            "immunoblot", "impannel", "impel", "imperil", "incur", "infer", "infil",
10569            "inflam", "initial", "input", "inset", "instil", "inter", "interbed",
10570            "intercrop", "intercut", "interfer", "instal", "instil", "intermit", "japan",
10571            "jug", "kris", "manumit", "mishit", "mousse", "mud", "interwar", "jab", "jag",
10572            "jam", "jar", "jawdrop", "jet", "jetlag", "jewel", "jib", "jig", "jitterbug",
10573            "job", "jog", "jog-trot", "jot", "jut", "ken", "kennel", "kid", "kidnap",
10574            "kip", "kissogram", "kit", "knap", "kneecap", "knit", "knob", "knot", "kor",
10575            "label", "lag", "lam", "lap", "lavel", "leafcut", "leapfrog", "leg", "lem",
10576            "lep", "let", "level", "libel", "lid", "lig", "lip", "lob", "log", "lok",
10577            "lollop", "longleg", "lop", "lowbal", "lug", "mackerel", "mahom", "man", "map",
10578            "mar", "marshal", "marvel", "mat", "matchwin", "metal", "micro-program",
10579            "microplan", "microprogram", "milksop", "mis-cal", "mis-club", "mis-spel",
10580            "miscal", "mishit", "mislabel", "mit", "mob", "mod", "model", "mohmam",
10581            "monogram", "mop", "mothbal", "mug", "multilevel", "mum", "nab", "nag", "nan",
10582            "nap", "net", "nightclub", "nightsit", "nip", "nod", "nonplus", "norkop",
10583            "nostril", "not", "nut", "nutmeg", "occur", "ocur", "offput", "offset", "omit",
10584            "ommit", "onlap", "out-general", "out-gun", "out-jab", "out-plan", "out-pol",
10585            "out-pul", "out-put", "out-run", "out-sel", "outbid", "outcrop", "outfit",
10586            "outgas", "outgun", "outhit", "outjab", "outpol", "output", "outrun",
10587            "outship", "outshop", "outsin", "outstrip", "outswel", "outspan", "overcrop",
10588            "pettifog", "photostat", "pouf", "preset", "prim", "pug", "ret", "rosin",
10589            "outwit", "over-commit", "over-control", "over-fil", "over-fit", "over-lap",
10590            "over-model", "over-pedal", "over-pet", "over-run", "over-sel", "over-step",
10591            "over-tip", "over-top", "overbid", "overcal", "overcommit", "overcontrol",
10592            "overcrap", "overdub", "overfil", "overhat", "overhit", "overlap", "overman",
10593            "overplot", "overrun", "overshop", "overstep", "overtip", "overtop", "overwet",
10594            "overwil", "pad", "paintbal", "pan", "panel", "paperclip", "par", "parallel",
10595            "parcel", "partiescal", "pat", "patrol", "pedal", "peewit", "peg", "pen",
10596            "pencil", "pep", "permit", "pet", "petal", "photoset", "phototypeset", "phut",
10597            "picket", "pig", "pilot", "pin", "pinbal", "pip", "pipefit", "pipet", "pit",
10598            "plan", "plit", "plod", "plop", "plot", "plug", "plumet", "plummet", "pod",
10599            "policyset", "polyfil", "ponytrek", "pop", "pot", "pram", "prebag",
10600            "predistil", "predril", "prefer", "prefil", "preinstal", "prep", "preplan",
10601            "preprogram", "prizewin", "prod", "profer", "prog", "program", "prop",
10602            "propel", "pub", "pummel", "pun", "pup", "pushfit", "put", "quarel", "quarrel",
10603            "quickskim", "quickstep", "quickwit", "quip", "quit", "quivertip", "quiz",
10604            "rabbit", "rabit", "radiolabel", "rag", "ram", "ramrod", "rap", "rat",
10605            "ratecap", "ravel", "re-admit", "re-cal", "re-cap", "re-channel", "re-dig",
10606            "re-dril", "re-emit", "re-fil", "re-fit", "re-flag", "re-format", "re-fret",
10607            "re-hab", "re-instal", "re-inter", "re-lap", "re-let", "re-map", "re-metal",
10608            "re-model", "re-pastel", "re-plan", "re-plot", "re-plug", "re-pot",
10609            "re-program", "re-refer", "re-rig", "re-rol", "re-run", "re-sel", "re-set",
10610            "re-skin", "re-stal", "re-submit", "re-tel", "re-top", "re-transmit",
10611            "re-trim", "re-wrap", "readmit", "reallot", "rebel", "rebid", "rebin", "rebut",
10612            "recap", "rechannel", "recommit", "recrop", "recur", "recut", "red", "redril",
10613            "refer", "refit", "reformat", "refret", "refuel", "reget", "regret", "reinter",
10614            "rejig", "rekit", "reknot", "relabel", "relet", "rem", "remap", "remetal",
10615            "remit", "remodel", "reoccur", "rep", "repel", "repin", "replan", "replot",
10616            "repol", "repot", "reprogram", "rerun", "reset", "resignal", "resit", "reskil",
10617            "resubmit", "retransfer", "retransmit", "retro-fit", "retrofit", "rev",
10618            "revel", "revet", "rewrap", "rib", "richochet", "ricochet", "rid", "rig",
10619            "rim", "ringlet", "rip", "rit", "rival", "rivet", "roadrun", "rob", "rocket",
10620            "rod", "roset", "rot", "rowel", "rub", "run", "runnel", "rut", "sab", "sad",
10621            "sag", "sandbag", "sap", "scab", "scalpel", "scam", "scan", "scar", "scat",
10622            "schlep", "scrag", "scram", "shall", "sled", "smut", "stet", "sulfuret",
10623            "trepan", "unrip", "unstop", "whir", "whop", "wig", "scrap", "scrat", "scrub",
10624            "scrum", "scud", "scum", "scur", "semi-control", "semi-skil", "semi-skim",
10625            "semiskil", "sentinel", "set", "shag", "sham", "shed", "shim", "shin", "ship",
10626            "shir", "shit", "shlap", "shop", "shopfit", "shortfal", "shot", "shovel",
10627            "shred", "shrinkwrap", "shrivel", "shrug", "shun", "shut", "side-step",
10628            "sideslip", "sidestep", "signal", "sin", "sinbin", "sip", "sit", "skid",
10629            "skim", "skin", "skip", "skir", "skrag", "slab", "slag", "slam", "slap",
10630            "slim", "slip", "slit", "slob", "slog", "slop", "slot", "slowclap", "slug",
10631            "slum", "slur", "smit", "snag", "snap", "snip", "snivel", "snog", "snorkel",
10632            "snowcem", "snub", "snug", "sob", "sod", "softpedal", "son", "sop", "spam",
10633            "span", "spar", "spat", "spiderweb", "spin", "spiral", "spit", "splat",
10634            "split", "spot", "sprag", "spraygun", "sprig", "springtip", "spud", "spur",
10635            "squat", "squirrel", "stab", "stag", "star", "stem", "sten", "stencil", "step",
10636            "stir", "stop", "storytel", "strap", "strim", "strip", "strop", "strug",
10637            "strum", "strut", "stub", "stud", "stun", "sub", "subcrop", "sublet", "submit",
10638            "subset", "suedetrim", "sum", "summit", "sun", "suntan", "sup", "super-chil",
10639            "superad", "swab", "swag", "swan", "swap", "swat", "swig", "swim", "swivel",
10640            "swot", "tab", "tag", "tan", "tansfer", "tap", "tar", "tassel", "tat", "tefer",
10641            "teleshop", "tendril", "terschel", "th'strip", "thermal", "thermostat", "thin",
10642            "throb", "thrum", "thud", "thug", "tightlip", "tin", "tinsel", "tip", "tittup",
10643            "toecap", "tog", "tom", "tomorrow", "top", "tot", "total", "towel", "traget",
10644            "trainspot", "tram", "trammel", "transfer", "tranship", "transit", "transmit",
10645            "transship", "trap", "travel", "trek", "trendset", "trim", "trip", "tripod",
10646            "trod", "trog", "trot", "trousseaushop", "trowel", "trup", "tub", "tug",
10647            "tunnel", "tup", "tut", "twat", "twig", "twin", "twit", "typeset", "tyset",
10648            "un-man", "unban", "unbar", "unbob", "uncap", "unclip", "uncompel", "undam",
10649            "under-bil", "under-cut", "under-fit", "under-pin", "under-skil", "underbid",
10650            "undercut", "underlet", "underman", "underpin", "unfit", "unfulfil", "unknot",
10651            "unlip", "unlywil", "unman", "unpad", "unpeg", "unpin", "unplug", "unravel",
10652            "unrol", "unscrol", "unsnap", "unstal", "unstep", "unstir", "untap", "unwrap",
10653            "unzip", "up", "upset", "upskil", "upwel", "ven", "verbal", "vet", "victual",
10654            "vignet", "wad", "wag", "wainscot", "wan", "war", "water-log", "waterfal",
10655            "waterfil", "waterlog", "weasel", "web", "wed", "wet", "wham", "whet", "whip",
10656            "whir", "whiteskin", "whiz", "whup", "wildcat", "win", "windmil", "wit",
10657            "woodchop", "woodcut", "wor", "worship", "wrap", "wiretap", "yen", "yak",
10658            "yap", "yarnspin", "yip", "yodel", "zag", "zap", "zig", "zig-zag", "zigzag",
10659            "zip", "ztrip", "hand-bag", "hocus", "hocus-pocus" ],
10660 
10661     PAST_PARTICIPLE_RULESET = {
10662         name : "PAST_PARTICIPLE",
10663         defaultRule : RegexRule(ANY_STEM, 0, "ed", 2),
10664         rules : PAST_PARTICIPLE_RULES,
10665         doubling : false
10666     },
10667 
10668     PRESENT_PARTICIPLE_RULESET = {
10669         name : "ING_FORM",
10670         defaultRule : RegexRule(ANY_STEM, 0, "ing", 2),
10671         rules : ING_FORM_RULES,
10672         doubling : false
10673     },
10674 
10675     PAST_TENSE_RULESET = {
10676         name : "PAST_TENSE",
10677         defaultRule : RegexRule(ANY_STEM, 0, "ed", 2),
10678         rules : PAST_TENSE_RULES,
10679         doubling : false
10680     },
10681 
10682     PRESENT_TENSE_RULESET = {
10683         name : "PRESENT_TENSE",
10684         defaultRule : RegexRule(ANY_STEM, 0, "s", 2),
10685         rules : PRESENT_TENSE_RULES,
10686         doubling : true
10687     };
10688 
10689     //////////////////////////////////////////////////////////////////////////////////
10690     //////// Utility functions 
10691     //////////////////////////////////////////////////////////////////////////////////
10692         
10693     function isNum(n) {
10694         
10695       return !isNaN(parseFloat(n)) && isFinite(n);
10696     }
10697 
10698     // Array helpers ////////////////////////////////////////////////////////////////
10699     
10700     function shuffle(oldArray) {
10701         var newArray = oldArray.slice();
10702         var len = newArray.length;
10703         var i = len;
10704          while (i--) {
10705             var p = parseInt(Math.random()*len);
10706             var t = newArray[i];
10707             newArray[i] = newArray[p];
10708             newArray[p] = t;
10709         }
10710         return newArray; 
10711     }
10712     
10713     // Array Remove - from John Resig (MIT Licensed)
10714     function remove(array, from, to) {
10715         
10716       // remove? only used once
10717       var rest = array.slice((to || from) + 1 || array.length);
10718       array.length = from < 0 ? array.length + from : from;
10719       return array.push.apply(array, rest);
10720     }
10721  
10722     function insert(array, item, idx) {
10723         
10724       array.slice(idx,0,item);
10725       return array;
10726     }
10727     
10728     function removeFromArray(items, element) {
10729         
10730         while (items.indexOf(element) !== -1) {
10731             items.splice(items.indexOf(element), 1);
10732         }
10733     }
10734     
10735     function inArray(array, val) {
10736         
10737         var i = array.length;
10738         while (i--) {
10739             if (array[i] == val) {
10740                 return true;
10741             }
10742         }
10743         return false;
10744     }
10745     
10746     // //////////////////////////////////////////////////////////////
10747 
10748     function dump(obj) {
10749 
10750         var properties = "";
10751         for ( var propertyName in obj) {
10752 
10753             properties += propertyName + ": ";
10754 
10755             // Check if its NOT a function
10756             if (!(obj[propertyName] instanceof Function)) {
10757                 properties += obj.propertyName;
10758             } else {
10759                 properties += "function()";
10760             }
10761             properties += ", ";
10762         }
10763         return properties;
10764     }
10765     
10766     function asList(array) {
10767         
10768         var s="[";
10769         for ( var i = 0; i < array.length; i++) {
10770             var el = array[i];
10771             if (array[i] instanceof Array)
10772                 el = asList(array[i]);
10773             s += el;
10774             if (i < array.length-1) s += ", ";
10775         }
10776         return s+"]";
10777     }
10778 
10779     function isNull(obj) {
10780         
10781         return (typeof obj === 'undefined' || obj === null);
10782     }
10783 
10784     function err(msg) {
10785         
10786         (!RiTa.SILENT) && console && console.trace(this);
10787         throw Error("[RiTa] " + msg);
10788     }
10789     
10790     function warn() {
10791         
10792         if (RiTa.SILENT || !console) return;
10793         for ( var i = 0; i < arguments.length; i++) {
10794             console.warn(arguments[i]);
10795         }
10796     }
10797  
10798     function log() {
10799     
10800         if (RiTa.SILENT || !console) return;        
10801         for ( var i = 0; i < arguments.length; i++) 
10802             console.log(arguments[i]);
10803     }
10804 
10805     function strOk(str) {
10806         
10807         return (typeof str === S && str.length > 0);
10808     }
10809 
10810     function trim(str) {
10811         
10812         // faster version from: http://blog.stevenlevithan.com/archives/faster-trim-javascript
10813         return str.replace(/^\s\s*/, '').replace(/\s\s*$/, ''); 
10814         //return str.replace(/^\s*(\S*(?:\s+\S+)*)\s*$/, "$1");
10815     }
10816 
10817     function last(word) { // last char of string
10818         
10819         if (!word || !word.length) return E;
10820         return word.charAt(word.length-1);
10821     }
10822 
10823     function extend(l1,l2) { // python extend
10824         
10825         for (var i = 0; i < l2.length; i++) {
10826          
10827             l1.push(l2[i]);
10828         }
10829     }
10830 
10831     function replaceAll(theText, replace, withThis) {
10832 
10833         return theText.replace(new RegExp(replace, 'g'), withThis);
10834     }
10835 
10836     function endsWith(str, ending) { // test this!!!
10837         
10838         return str.slice(-ending.length) == ending;
10839     }
10840     
10841     function startsWith(text, substr) {
10842 
10843         if (!Type.is(text,S)) return false;
10844         return text.slice(0, substr.length) == substr;
10845     }
10846     
10847     function equalsIgnoreCase(str1, str2) {
10848 
10849         return (str1.toLowerCase() === str2.toLowerCase());
10850     }
10851 
10852     function makeClass() { // By John Resig (MIT Licensed)
10853 
10854         return function(args) {
10855             
10856             if (this instanceof arguments.callee) {
10857                 
10858                 if (typeof this.initialize == "function") {
10859                     
10860                     this.initialize.apply(this, args && args.callee ? args : arguments);
10861                 }
10862             } 
10863             else {
10864                 return new arguments.callee(arguments);
10865             }
10866         };
10867     }
10868     
10869     function parseColor() {
10870    
10871         var a = arguments, len = a.length;
10872         
10873         //log('parseColor:'+len);
10874         
10875         var color = { r: 0, g: 0, b: 0, a: 255 };
10876 
10877         if (!len) return color;
10878 
10879         if (len == 1 && Type.is(a[0],A)) {
10880             return parseColor.apply(this, a[0]);
10881         }
10882     
10883         if (len >= 3) {
10884             color.r = a[0];
10885             color.g = a[1];
10886             color.b = a[2];
10887         }
10888         if (len == 4) {
10889             color.a = a[3];
10890         }
10891         if (len <= 2) {
10892             color.r = a[0];
10893             color.g = a[0];
10894             color.b = a[0];
10895         }
10896         if (len == 2) {
10897             color.a = a[1];
10898         }
10899 
10900         return color;
10901     }
10902     
10903     
10904     function addSpaces(str, num) {
10905         
10906         for ( var i = 0; i < num; i++)
10907             str += " ";
10908         return str;
10909     }
10910     
10911     LetterToSound.RULES = [
10912                                
10913         'TOTAL 13100',
10914         'INDEX 0 a',
10915         'STATE 4 r 2 1',
10916         'STATE 6 0 4 3',
10917         'STATE 3 e 6 5',
10918         'STATE 4 u 8 7',
10919         'STATE 4 y 10 9',
10920         'STATE 3 w 12 11',
10921         'STATE 5 t 14 13',
10922         'STATE 3 e 16 15',
10923         'STATE 3 e 18 17',
10924         'STATE 4 # 20 19',
10925         'STATE 3 w 22 21',
10926         'STATE 1 0 24 23',
10927         'STATE 5 e 26 25',
10928         'STATE 5 n 28 27',
10929         'STATE 2 h 29 28',
10930         'STATE 5 e 31 30',
10931         'STATE 2 r 33 32',
10932         'STATE 5 e 35 34',
10933         'STATE 5 t 28 36',
10934         'STATE 3 e 38 37',
10935         'STATE 3 e 40 39',
10936         'STATE 2 c 42 41',
10937         'STATE 2 a 43 42',
10938         'STATE 5 y 45 44',
10939         'STATE 5 r 47 46',
10940         'STATE 5 d 49 48',
10941         'PHONE eh1',
10942         'STATE 5 m 51 50',
10943         'PHONE epsilon',
10944         'PHONE aa1',
10945         'STATE 4 i 53 52',
10946         'STATE 4 g 55 54',
10947         'STATE 4 n 57 56',
10948         'STATE 1 # 59 58',
10949         'STATE 5 g 61 60',
10950         'STATE 1 0 63 62',
10951         'STATE 1 u 29 64',
10952         'STATE 3 o 28 65',
10953         'STATE 4 u 67 66',
10954         'STATE 3 a 29 68',
10955         'STATE 2 l 68 69',
10956         'STATE 1 # 42 70',
10957         'PHONE ey1',
10958         'STATE 1 l 72 71',
10959         'STATE 5 i 74 73',
10960         'STATE 3 n 26 75',
10961         'STATE 5 a 77 76',
10962         'STATE 2 # 79 78',
10963         'STATE 5 i 26 80',
10964         'STATE 1 0 82 81',
10965         'STATE 2 w 28 83',
10966         'STATE 2 r 29 84',
10967         'STATE 5 i 86 85',
10968         'STATE 5 r 88 87',
10969         'STATE 6 # 90 89',
10970         'STATE 1 0 92 91',
10971         'STATE 4 b 94 93',
10972         'STATE 1 # 96 95',
10973         'STATE 4 k 98 97',
10974         'STATE 5 t 100 99',
10975         'STATE 1 0 102 101',
10976         'STATE 2 # 104 103',
10977         'STATE 1 # 63 105',
10978         'PHONE aw1',
10979         'STATE 6 e 107 106',
10980         'STATE 4 w 109 108',
10981         'STATE 4 d 28 110',
10982         'STATE 1 o 111 107',
10983         'PHONE ax',
10984         'STATE 2 y 68 112',
10985         'STATE 2 p 42 113',
10986         'STATE 1 t 72 42',
10987         'PHONE ey',
10988         'STATE 5 e 115 114',
10989         'STATE 6 # 29 116',
10990         'STATE 2 c 26 117',
10991         'STATE 5 i 119 118',
10992         'STATE 3 p 26 120',
10993         'STATE 6 o 100 28',
10994         'STATE 3 n 26 121',
10995         'STATE 1 0 82 122',
10996         'STATE 1 # 82 123',
10997         'PHONE ao1',
10998         'STATE 1 s 125 124',
10999         'STATE 1 # 28 126',
11000         'STATE 4 y 128 127',
11001         'STATE 6 o 130 129',
11002         'STATE 5 n 132 131',
11003         'STATE 3 z 133 26',
11004         'STATE 3 w 135 134',
11005         'STATE 4 t 137 136',
11006         'STATE 1 # 139 138',
11007         'STATE 3 m 100 140',
11008         'STATE 1 i 142 141',
11009         'STATE 1 # 28 68',
11010         'STATE 1 c 28 143',
11011         'STATE 5 d 100 144',
11012         'STATE 4 t 146 145',
11013         'STATE 1 b 42 28',
11014         'STATE 6 n 148 147',
11015         'PHONE ae1',
11016         'STATE 1 # 150 149',
11017         'STATE 3 c 152 151',
11018         'STATE 2 n 154 153',
11019         'STATE 3 l 100 82',
11020         'PHONE aw',
11021         'STATE 1 o 111 155',
11022         'PHONE ow1',
11023         'STATE 1 # 157 156',
11024         'STATE 3 l 82 158',
11025         'STATE 4 n 160 159',
11026         'PHONE ow',
11027         'STATE 1 c 28 68',
11028         'STATE 1 l 162 161',
11029         'STATE 5 r 164 163',
11030         'STATE 6 l 166 165',
11031         'STATE 6 z 28 167',
11032         'STATE 2 e 26 168',
11033         'STATE 5 e 170 169',
11034         'STATE 6 s 172 171',
11035         'STATE 6 # 29 173',
11036         'STATE 3 h 175 174',
11037         'STATE 5 # 28 176',
11038         'STATE 1 r 82 28',
11039         'STATE 5 l 178 177',
11040         'STATE 6 # 179 126',
11041         'PHONE ih1',
11042         'STATE 2 # 181 180',
11043         'STATE 5 a 183 182',
11044         'STATE 6 # 29 184',
11045         'STATE 4 t 186 185',
11046         'STATE 5 l 188 187',
11047         'STATE 3 t 190 189',
11048         'PHONE ay',
11049         'STATE 6 d 192 191',
11050         'STATE 4 t 194 193',
11051         'STATE 3 i 196 195',
11052         'STATE 3 u 198 197',
11053         'STATE 3 i 28 199',
11054         'STATE 2 s 42 200',
11055         'STATE 6 r 42 201',
11056         'STATE 1 t 203 202',
11057         'STATE 2 n 42 204',
11058         'STATE 1 r 68 205',
11059         'STATE 2 d 100 28',
11060         'STATE 5 o 28 206',
11061         'STATE 1 c 42 207',
11062         'STATE 5 e 28 208',
11063         'STATE 4 g 42 28',
11064         'STATE 5 l 210 209',
11065         'STATE 3 h 82 211',
11066         'STATE 2 # 213 212',
11067         'STATE 6 a 82 214',
11068         'STATE 1 # 82 215',
11069         'PHONE ao',
11070         'STATE 2 b 217 216',
11071         'STATE 4 n 219 218',
11072         'STATE 3 a 29 220',
11073         'STATE 1 e 154 82',
11074         'STATE 2 n 222 221',
11075         'STATE 1 c 28 223',
11076         'STATE 3 d 42 224',
11077         'STATE 3 d 225 72',
11078         'STATE 5 t 227 226',
11079         'STATE 2 q 82 228',
11080         'STATE 6 t 28 229',
11081         'STATE 2 c 28 230',
11082         'STATE 6 o 232 231',
11083         'STATE 3 u 26 233',
11084         'STATE 5 o 235 234',
11085         'STATE 6 e 28 236',
11086         'STATE 6 # 29 237',
11087         'STATE 2 # 238 28',
11088         'STATE 6 s 240 239',
11089         'STATE 6 y 26 241',
11090         'STATE 6 e 100 242',
11091         'STATE 2 e 28 243',
11092         'STATE 2 b 245 244',
11093         'STATE 2 p 28 246',
11094         'STATE 2 h 247 28',
11095         'STATE 1 # 249 248',
11096         'STATE 3 w 251 250',
11097         'STATE 5 o 253 252',
11098         'STATE 6 s 230 254',
11099         'STATE 6 z 256 255',
11100         'STATE 4 n 100 257',
11101         'STATE 1 0 100 258',
11102         'STATE 6 # 260 259',
11103         'STATE 3 m 261 42',
11104         'STATE 1 a 263 262',
11105         'STATE 2 s 42 264',
11106         'STATE 6 s 266 265',
11107         'STATE 4 t 268 267',
11108         'STATE 4 l 68 42',
11109         'STATE 2 t 29 82',
11110         'STATE 3 o 28 269',
11111         'STATE 4 l 29 100',
11112         'STATE 3 t 42 270',
11113         'STATE 2 t 42 271',
11114         'STATE 6 n 68 272',
11115         'STATE 3 r 42 273',
11116         'STATE 6 # 42 274',
11117         'STATE 1 # 28 275',
11118         'STATE 4 t 276 28',
11119         'STATE 4 s 28 277',
11120         'STATE 2 c 68 278',
11121         'STATE 4 n 68 279',
11122         'STATE 1 t 28 280',
11123         'STATE 5 s 68 281',
11124         'STATE 6 # 283 282',
11125         'STATE 3 n 107 284',
11126         'STATE 2 c 82 285',
11127         'STATE 5 t 82 286',
11128         'STATE 5 n 82 287',
11129         'STATE 5 s 29 288',
11130         'STATE 2 e 154 289',
11131         'STATE 1 e 111 107',
11132         'STATE 5 c 107 290',
11133         'STATE 4 l 292 291',
11134         'STATE 3 m 68 293',
11135         'STATE 4 u 63 294',
11136         'STATE 1 a 28 295',
11137         'STATE 1 i 68 28',
11138         'STATE 1 # 28 296',
11139         'STATE 2 t 42 297',
11140         'STATE 2 i 72 42',
11141         'STATE 3 o 28 298',
11142         'STATE 2 q 82 299',
11143         'STATE 1 r 26 300',
11144         'STATE 1 c 302 301',
11145         'PHONE aa',
11146         'STATE 6 a 26 303',
11147         'STATE 3 s 29 304',
11148         'STATE 3 r 26 305',
11149         'STATE 5 y 307 306',
11150         'STATE 6 l 309 308',
11151         'STATE 2 # 311 310',
11152         'STATE 3 v 313 312',
11153         'STATE 3 p 28 26',
11154         'STATE 6 b 100 314',
11155         'STATE 3 h 28 29',
11156         'STATE 6 i 316 315',
11157         'STATE 6 o 26 100',
11158         'STATE 1 # 82 317',
11159         'STATE 5 c 28 318',
11160         'STATE 5 d 126 28',
11161         'STATE 1 # 319 28',
11162         'PHONE ih',
11163         'STATE 5 o 321 320',
11164         'STATE 3 o 323 322',
11165         'STATE 4 w 325 324',
11166         'STATE 4 l 327 326',
11167         'STATE 5 r 328 42',
11168         'STATE 2 # 42 329',
11169         'STATE 2 a 331 330',
11170         'STATE 6 n 333 332',
11171         'STATE 1 0 100 68',
11172         'STATE 1 0 335 334',
11173         'STATE 3 n 337 336',
11174         'STATE 5 o 28 338',
11175         'STATE 5 a 29 42',
11176         'STATE 2 e 72 42',
11177         'STATE 6 g 29 339',
11178         'STATE 3 r 42 340',
11179         'STATE 6 e 42 341',
11180         'STATE 4 k 343 342',
11181         'STATE 4 t 345 344',
11182         'STATE 3 o 28 346',
11183         'STATE 3 o 28 42',
11184         'STATE 2 a 348 347',
11185         'STATE 2 i 350 349',
11186         'STATE 1 a 42 68',
11187         'STATE 6 r 352 351',
11188         'STATE 3 l 100 68',
11189         'STATE 2 # 354 353',
11190         'STATE 2 m 42 355',
11191         'STATE 5 r 100 68',
11192         'STATE 4 l 28 68',
11193         'STATE 2 g 68 356',
11194         'STATE 4 l 28 357',
11195         'STATE 5 h 28 358',
11196         'STATE 4 p 68 359',
11197         'STATE 5 s 361 360',
11198         'STATE 5 d 107 362',
11199         'STATE 3 s 82 363',
11200         'STATE 6 e 365 364',
11201         'STATE 5 d 82 366',
11202         'STATE 5 r 368 367',
11203         'STATE 5 l 29 82',
11204         'STATE 2 o 154 369',
11205         'STATE 6 o 107 370',
11206         'STATE 4 s 372 371',
11207         'STATE 3 h 373 68',
11208         'STATE 3 i 68 374',
11209         'STATE 4 i 28 375',
11210         'STATE 4 k 28 376',
11211         'STATE 1 o 68 377',
11212         'STATE 1 c 42 378',
11213         'STATE 1 # 380 379',
11214         'STATE 1 # 29 381',
11215         'STATE 1 e 383 382',
11216         'STATE 6 # 385 384',
11217         'STATE 3 s 29 230',
11218         'STATE 6 c 387 386',
11219         'STATE 3 c 26 388',
11220         'STATE 2 i 26 389',
11221         'STATE 5 u 391 390',
11222         'STATE 6 # 26 392',
11223         'STATE 6 # 29 393',
11224         'STATE 3 p 28 394',
11225         'STATE 6 n 28 230',
11226         'STATE 3 m 230 395',
11227         'STATE 6 t 26 396',
11228         'STATE 6 e 28 26',
11229         'STATE 2 # 398 397',
11230         'STATE 3 m 400 399',
11231         'STATE 3 m 26 401',
11232         'STATE 2 h 82 402',
11233         'STATE 5 s 404 403',
11234         'STATE 6 e 28 126',
11235         'STATE 5 l 406 405',
11236         'STATE 6 # 29 407',
11237         'STATE 4 w 409 408',
11238         'STATE 2 j 29 28',
11239         'STATE 4 l 411 410',
11240         'STATE 5 a 413 412',
11241         'STATE 4 g 100 414',
11242         'STATE 6 o 288 82',
11243         'STATE 6 e 26 42',
11244         'STATE 6 # 42 415',
11245         'STATE 3 r 42 416',
11246         'STATE 6 # 29 68',
11247         'STATE 6 a 418 417',
11248         'STATE 4 t 420 419',
11249         'STATE 2 t 100 421',
11250         'STATE 4 d 42 422',
11251         'STATE 3 u 42 423',
11252         'STATE 2 i 42 424',
11253         'STATE 6 a 426 425',
11254         'STATE 2 a 26 427',
11255         'STATE 3 g 68 42',
11256         'STATE 1 u 68 428',
11257         'STATE 4 y 42 429',
11258         'STATE 3 m 42 430',
11259         'STATE 4 w 82 431',
11260         'STATE 3 u 42 432',
11261         'STATE 4 w 82 433',
11262         'STATE 1 0 42 434',
11263         'STATE 1 l 29 435',
11264         'STATE 3 n 437 436',
11265         'STATE 3 d 42 438',
11266         'STATE 6 o 42 439',
11267         'STATE 2 l 247 440',
11268         'STATE 6 n 68 42',
11269         'STATE 6 n 442 441',
11270         'STATE 1 a 444 443',
11271         'STATE 5 s 68 28',
11272         'STATE 5 t 445 28',
11273         'STATE 1 h 28 68',
11274         'STATE 4 f 68 446',
11275         'STATE 2 s 28 447',
11276         'STATE 6 t 82 448',
11277         'STATE 3 n 82 449',
11278         'STATE 6 t 450 82',
11279         'STATE 5 s 452 451',
11280         'STATE 5 b 63 453',
11281         'STATE 6 t 455 454',
11282         'STATE 5 l 457 456',
11283         'STATE 3 l 82 458',
11284         'STATE 1 0 460 459',
11285         'STATE 1 # 111 107',
11286         'STATE 4 u 105 461',
11287         'STATE 3 a 230 462',
11288         'STATE 2 t 463 68',
11289         'STATE 1 n 465 464',
11290         'STATE 4 o 28 466',
11291         'STATE 4 t 28 467',
11292         'STATE 2 r 28 468',
11293         'STATE 1 e 42 469',
11294         'STATE 6 e 471 470',
11295         'STATE 5 a 473 472',
11296         'STATE 3 p 29 474',
11297         'STATE 2 c 476 475',
11298         'STATE 2 r 100 26',
11299         'STATE 3 v 29 477',
11300         'STATE 3 c 26 478',
11301         'STATE 1 i 26 479',
11302         'STATE 2 a 28 100',
11303         'STATE 3 l 29 26',
11304         'STATE 2 s 26 480',
11305         'STATE 3 h 482 481',
11306         'STATE 6 s 230 28',
11307         'STATE 3 m 100 26',
11308         'STATE 6 s 230 483',
11309         'STATE 3 c 26 484',
11310         'STATE 6 l 230 485',
11311         'STATE 6 b 100 486',
11312         'STATE 6 m 26 28',
11313         'STATE 3 n 230 487',
11314         'STATE 3 g 100 488',
11315         'STATE 6 o 230 29',
11316         'STATE 3 p 29 100',
11317         'STATE 5 t 28 29',
11318         'STATE 5 r 28 489',
11319         'STATE 6 # 126 28',
11320         'STATE 1 0 491 490',
11321         'STATE 4 b 493 492',
11322         'STATE 4 t 495 494',
11323         'STATE 4 l 497 496',
11324         'STATE 5 a 68 498',
11325         'STATE 5 a 500 499',
11326         'STATE 5 a 502 501',
11327         'STATE 6 r 68 503',
11328         'STATE 3 k 29 68',
11329         'STATE 5 t 505 504',
11330         'STATE 1 # 42 72',
11331         'STATE 3 p 42 28',
11332         'STATE 6 v 507 506',
11333         'STATE 2 # 509 508',
11334         'STATE 3 o 28 510',
11335         'STATE 1 0 512 511',
11336         'STATE 3 n 29 513',
11337         'STATE 4 v 42 514',
11338         'STATE 1 i 515 42',
11339         'STATE 1 e 100 516',
11340         'STATE 5 s 518 517',
11341         'STATE 3 m 42 519',
11342         'STATE 3 m 42 520',
11343         'STATE 1 0 42 521',
11344         'STATE 2 # 523 522',
11345         'STATE 2 # 525 524',
11346         'STATE 4 l 527 526',
11347         'STATE 1 t 529 528',
11348         'STATE 4 x 100 530',
11349         'STATE 2 i 532 531',
11350         'STATE 4 l 29 533',
11351         'STATE 3 r 535 534',
11352         'STATE 2 e 42 536',
11353         'STATE 1 c 42 537',
11354         'STATE 2 s 539 538',
11355         'STATE 3 l 72 540',
11356         'STATE 3 h 100 541',
11357         'STATE 3 h 42 100',
11358         'STATE 4 d 28 542',
11359         'STATE 4 t 68 28',
11360         'STATE 1 b 28 100',
11361         'STATE 5 l 100 543',
11362         'STATE 6 h 105 544',
11363         'STATE 3 h 63 545',
11364         'STATE 3 b 63 546',
11365         'STATE 3 f 82 107',
11366         'STATE 5 t 547 82',
11367         'STATE 2 k 63 82',
11368         'STATE 2 k 63 548',
11369         'STATE 5 r 82 549',
11370         'STATE 5 s 82 498',
11371         'STATE 3 g 551 550',
11372         'STATE 6 i 82 552',
11373         'STATE 6 e 105 82',
11374         'STATE 2 c 82 553',
11375         'STATE 6 u 82 554',
11376         'STATE 4 i 556 555',
11377         'STATE 3 v 558 557',
11378         'STATE 1 n 29 82',
11379         'STATE 2 s 560 559',
11380         'STATE 3 h 562 561',
11381         'STATE 3 i 68 563',
11382         'STATE 1 e 68 564',
11383         'STATE 1 a 68 565',
11384         'STATE 1 t 42 566',
11385         'STATE 3 l 568 567',
11386         'STATE 3 b 569 29',
11387         'STATE 5 o 571 570',
11388         'STATE 6 # 29 572',
11389         'STATE 3 c 29 573',
11390         'STATE 3 h 100 574',
11391         'STATE 6 i 100 575',
11392         'STATE 3 p 26 576',
11393         'STATE 3 f 26 577',
11394         'STATE 3 l 579 578',
11395         'STATE 2 u 26 580',
11396         'STATE 5 k 29 581',
11397         'STATE 6 o 582 29',
11398         'STATE 6 u 28 583',
11399         'STATE 3 k 26 100',
11400         'STATE 6 # 26 584',
11401         'STATE 6 e 26 585',
11402         'STATE 6 c 230 586',
11403         'STATE 6 # 29 587',
11404         'STATE 2 l 589 588',
11405         'STATE 3 o 591 590',
11406         'STATE 4 l 593 592',
11407         'STATE 6 y 595 594',
11408         'STATE 6 i 100 596',
11409         'STATE 6 s 598 597',
11410         'STATE 6 r 600 599',
11411         'STATE 2 t 602 601',
11412         'STATE 2 s 604 603',
11413         'STATE 5 c 29 82',
11414         'STATE 5 o 606 605',
11415         'STATE 6 # 608 607',
11416         'STATE 5 o 610 609',
11417         'STATE 6 # 29 611',
11418         'STATE 5 h 82 612',
11419         'STATE 4 c 614 613',
11420         'STATE 4 s 42 29',
11421         'STATE 6 e 616 615',
11422         'STATE 4 t 618 617',
11423         'STATE 4 z 29 619',
11424         'STATE 3 r 42 620',
11425         'STATE 4 g 622 621',
11426         'STATE 3 u 623 42',
11427         'STATE 3 l 230 42',
11428         'STATE 4 z 100 624',
11429         'STATE 2 # 230 29',
11430         'STATE 2 r 625 42',
11431         'STATE 1 d 100 42',
11432         'STATE 5 a 28 626',
11433         'STATE 6 t 29 627',
11434         'STATE 1 # 42 628',
11435         'STATE 3 l 629 42',
11436         'STATE 6 t 68 630',
11437         'STATE 1 # 632 631',
11438         'STATE 6 k 634 633',
11439         'STATE 1 # 42 635',
11440         'STATE 3 t 42 636',
11441         'STATE 4 n 638 637',
11442         'STATE 1 0 640 639',
11443         'STATE 3 g 642 641',
11444         'STATE 3 m 68 42',
11445         'STATE 1 0 644 643',
11446         'STATE 3 a 29 645',
11447         'STATE 4 l 29 42',
11448         'STATE 4 c 29 646',
11449         'STATE 3 l 42 647',
11450         'STATE 2 a 68 648',
11451         'STATE 1 i 68 649',
11452         'STATE 3 m 68 650',
11453         'STATE 1 e 652 651',
11454         'STATE 3 s 331 42',
11455         'STATE 3 r 29 653',
11456         'STATE 3 p 100 42',
11457         'STATE 6 o 28 654',
11458         'STATE 6 g 68 655',
11459         'STATE 2 e 657 656',
11460         'STATE 3 r 63 82',
11461         'STATE 5 s 659 658',
11462         'STATE 2 t 63 82',
11463         'STATE 3 r 82 63',
11464         'STATE 5 b 82 660',
11465         'STATE 3 s 662 661',
11466         'STATE 5 c 63 663',
11467         'STATE 6 t 82 664',
11468         'STATE 1 o 154 665',
11469         'STATE 6 m 230 82',
11470         'STATE 4 o 667 666',
11471         'STATE 2 a 29 28',
11472         'STATE 3 j 230 68',
11473         'STATE 2 i 230 68',
11474         'STATE 3 h 669 668',
11475         'STATE 3 s 68 670',
11476         'STATE 3 g 672 671',
11477         'PHONE ae',
11478         'STATE 3 u 29 673',
11479         'STATE 4 m 28 674',
11480         'STATE 1 e 28 68',
11481         'STATE 2 o 42 675',
11482         'STATE 3 p 677 676',
11483         'STATE 2 u 28 678',
11484         'STATE 1 e 230 29',
11485         'STATE 2 s 680 679',
11486         'STATE 3 h 26 29',
11487         'STATE 3 h 682 681',
11488         'STATE 2 g 28 683',
11489         'STATE 6 # 100 684',
11490         'STATE 6 e 26 100',
11491         'STATE 1 # 686 685',
11492         'STATE 1 # 26 687',
11493         'STATE 6 e 26 688',
11494         'STATE 6 t 26 689',
11495         'STATE 3 i 28 690',
11496         'STATE 6 s 29 691',
11497         'STATE 5 b 29 692',
11498         'STATE 3 m 28 693',
11499         'STATE 3 l 28 694',
11500         'STATE 6 c 100 695',
11501         'STATE 3 c 100 696',
11502         'STATE 6 e 698 697',
11503         'STATE 1 n 28 699',
11504         'STATE 1 c 126 700',
11505         'STATE 4 n 702 701',
11506         'STATE 5 t 704 703',
11507         'STATE 4 e 28 705',
11508         'STATE 5 a 707 706',
11509         'STATE 4 l 709 708',
11510         'STATE 3 c 28 68',
11511         'STATE 1 0 42 68',
11512         'STATE 4 g 711 710',
11513         'STATE 4 g 230 712',
11514         'STATE 2 e 68 713',
11515         'STATE 1 d 42 714',
11516         'STATE 4 a 28 715',
11517         'STATE 5 s 717 716',
11518         'STATE 6 # 719 718',
11519         'STATE 3 t 82 720',
11520         'STATE 4 a 28 721',
11521         'STATE 6 # 29 722',
11522         'STATE 3 v 724 723',
11523         'STATE 4 n 100 29',
11524         'STATE 5 m 726 725',
11525         'STATE 6 # 29 727',
11526         'STATE 3 b 100 728',
11527         'STATE 3 p 729 82',
11528         'STATE 4 a 28 730',
11529         'STATE 5 h 82 100',
11530         'STATE 6 c 732 731',
11531         'STATE 4 n 734 733',
11532         'STATE 4 s 42 735',
11533         'STATE 2 r 68 736',
11534         'STATE 3 t 738 737',
11535         'STATE 3 m 740 739',
11536         'STATE 4 w 82 741',
11537         'STATE 2 i 100 742',
11538         'PHONE w-ey1',
11539         'STATE 1 o 42 743',
11540         'STATE 3 m 42 100',
11541         'STATE 6 s 42 744',
11542         'STATE 3 m 42 745',
11543         'STATE 3 r 42 28',
11544         'STATE 2 p 42 746',
11545         'STATE 1 o 42 747',
11546         'STATE 1 0 749 748',
11547         'STATE 6 r 751 750',
11548         'STATE 3 v 753 752',
11549         'STATE 4 c 29 754',
11550         'STATE 6 n 42 755',
11551         'STATE 3 l 42 756',
11552         'STATE 4 x 100 757',
11553         'STATE 2 0 100 758',
11554         'STATE 2 o 29 759',
11555         'STATE 2 # 42 230',
11556         'STATE 2 c 42 760',
11557         'STATE 2 e 68 42',
11558         'STATE 4 l 68 761',
11559         'STATE 3 m 100 762',
11560         'STATE 1 # 42 763',
11561         'STATE 4 d 42 740',
11562         'STATE 3 i 765 764',
11563         'STATE 2 u 68 766',
11564         'STATE 1 t 68 42',
11565         'STATE 1 t 42 767',
11566         'STATE 2 e 247 768',
11567         'STATE 3 g 42 247',
11568         'STATE 3 n 68 247',
11569         'STATE 5 h 28 769',
11570         'STATE 6 u 68 28',
11571         'STATE 2 t 105 770',
11572         'STATE 6 e 771 82',
11573         'STATE 3 h 107 772',
11574         'STATE 3 h 63 105',
11575         'STATE 6 i 63 773',
11576         'STATE 6 # 82 774',
11577         'STATE 5 t 154 82',
11578         'STATE 5 d 111 775',
11579         'STATE 6 e 82 776',
11580         'STATE 2 a 154 777',
11581         'STATE 4 e 628 778',
11582         'STATE 2 a 28 105',
11583         'STATE 3 w 780 779',
11584         'STATE 1 l 562 781',
11585         'STATE 3 t 100 782',
11586         'STATE 2 a 100 68',
11587         'STATE 2 i 68 562',
11588         'STATE 3 h 100 783',
11589         'STATE 1 # 28 784',
11590         'STATE 3 l 786 785',
11591         'STATE 5 k 788 787',
11592         'STATE 5 a 790 789',
11593         'STATE 2 c 28 791',
11594         'STATE 3 h 29 792',
11595         'STATE 3 c 793 29',
11596         'STATE 2 g 26 28',
11597         'STATE 6 c 26 28',
11598         'STATE 6 y 29 794',
11599         'STATE 2 a 795 29',
11600         'STATE 1 e 26 796',
11601         'STATE 3 h 26 797',
11602         'STATE 3 m 26 798',
11603         'STATE 6 u 26 799',
11604         'STATE 1 # 26 28',
11605         'STATE 1 a 28 800',
11606         'STATE 5 c 802 801',
11607         'STATE 5 p 230 29',
11608         'STATE 3 l 100 803',
11609         'STATE 3 p 804 26',
11610         'STATE 3 c 230 805',
11611         'STATE 3 t 230 806',
11612         'STATE 3 d 100 807',
11613         'STATE 3 f 26 808',
11614         'STATE 2 t 28 809',
11615         'STATE 1 # 126 28',
11616         'STATE 5 a 811 810',
11617         'STATE 5 g 813 812',
11618         'STATE 4 n 68 28',
11619         'STATE 2 c 28 100',
11620         'STATE 4 n 815 814',
11621         'STATE 5 t 817 816',
11622         'STATE 6 r 68 818',
11623         'STATE 4 h 820 819',
11624         'STATE 6 # 822 821',
11625         'STATE 2 a 824 823',
11626         'STATE 6 n 100 68',
11627         'STATE 1 o 100 825',
11628         'STATE 2 u 68 826',
11629         'STATE 2 t 42 827',
11630         'STATE 3 i 829 828',
11631         'STATE 5 a 230 830',
11632         'STATE 6 o 100 831',
11633         'STATE 5 t 82 832',
11634         'STATE 5 a 29 833',
11635         'STATE 3 m 82 834',
11636         'STATE 4 e 836 835',
11637         'STATE 6 r 838 837',
11638         'STATE 6 n 840 839',
11639         'STATE 4 c 72 841',
11640         'STATE 5 d 843 842',
11641         'STATE 6 a 100 844',
11642         'STATE 6 s 68 845',
11643         'STATE 6 s 29 846',
11644         'STATE 5 l 230 82',
11645         'STATE 5 g 100 847',
11646         'STATE 6 t 849 848',
11647         'STATE 4 t 100 850',
11648         'STATE 1 0 852 851',
11649         'STATE 1 0 853 68',
11650         'STATE 4 l 68 230',
11651         'STATE 2 e 68 854',
11652         'STATE 4 n 856 855',
11653         'STATE 4 l 858 857',
11654         'STATE 3 d 42 859',
11655         'STATE 4 n 42 29',
11656         'STATE 4 y 42 860',
11657         'STATE 1 0 100 247',
11658         'STATE 4 c 42 861',
11659         'STATE 6 n 42 862',
11660         'STATE 3 n 42 863',
11661         'STATE 6 e 42 68',
11662         'STATE 6 i 42 864',
11663         'STATE 3 o 28 865',
11664         'STATE 4 m 867 866',
11665         'STATE 2 s 869 868',
11666         'STATE 3 o 28 870',
11667         'STATE 6 l 872 871',
11668         'STATE 4 l 873 562',
11669         'STATE 4 s 29 100',
11670         'STATE 3 b 42 68',
11671         'STATE 3 b 42 100',
11672         'STATE 4 j 68 874',
11673         'STATE 2 e 68 875',
11674         'STATE 1 # 68 876',
11675         'STATE 3 l 878 877',
11676         'STATE 4 h 68 879',
11677         'STATE 4 l 100 880',
11678         'STATE 4 c 882 881',
11679         'STATE 2 e 42 883',
11680         'STATE 2 c 42 884',
11681         'STATE 1 t 68 885',
11682         'STATE 1 d 42 886',
11683         'STATE 3 p 42 887',
11684         'STATE 1 u 28 888',
11685         'STATE 1 r 29 889',
11686         'STATE 3 l 105 82',
11687         'STATE 3 r 63 771',
11688         'STATE 5 s 63 890',
11689         'STATE 5 m 63 891',
11690         'STATE 5 t 82 63',
11691         'STATE 6 # 82 892',
11692         'STATE 2 r 154 82',
11693         'STATE 4 k 894 893',
11694         'STATE 3 g 68 895',
11695         'STATE 2 o 68 896',
11696         'STATE 1 u 68 897',
11697         'STATE 3 c 100 68',
11698         'STATE 3 w 29 898',
11699         'STATE 4 f 28 899',
11700         'STATE 1 u 901 900',
11701         'STATE 1 i 42 902',
11702         'STATE 5 a 904 903',
11703         'STATE 3 m 29 905',
11704         'STATE 2 p 28 906',
11705         'STATE 6 g 26 28',
11706         'STATE 1 o 28 907',
11707         'STATE 3 u 29 908',
11708         'STATE 6 e 29 909',
11709         'STATE 1 n 29 910',
11710         'STATE 3 v 28 230',
11711         'STATE 6 s 29 28',
11712         'STATE 3 l 26 911',
11713         'STATE 2 s 26 29',
11714         'STATE 6 l 26 912',
11715         'STATE 2 a 28 913',
11716         'STATE 6 a 915 914',
11717         'STATE 3 m 917 916',
11718         'STATE 6 t 100 918',
11719         'STATE 6 n 28 26',
11720         'STATE 6 m 28 919',
11721         'STATE 6 h 100 920',
11722         'STATE 3 p 26 921',
11723         'STATE 3 c 230 922',
11724         'STATE 6 n 126 923',
11725         'STATE 4 l 925 924',
11726         'STATE 6 # 927 926',
11727         'STATE 6 # 929 928',
11728         'STATE 6 e 931 930',
11729         'STATE 4 a 28 932',
11730         'STATE 5 y 26 933',
11731         'STATE 5 d 935 934',
11732         'STATE 6 e 82 936',
11733         'STATE 6 n 230 937',
11734         'STATE 4 e 939 938',
11735         'STATE 6 # 940 29',
11736         'STATE 6 s 82 941',
11737         'STATE 3 b 82 942',
11738         'STATE 1 0 944 943',
11739         'STATE 1 p 68 945',
11740         'STATE 4 p 68 946',
11741         'STATE 2 o 68 947',
11742         'STATE 2 i 949 948',
11743         'STATE 4 e 951 950',
11744         'STATE 2 d 953 952',
11745         'STATE 5 o 29 954',
11746         'STATE 6 l 562 955',
11747         'STATE 3 n 68 956',
11748         'STATE 5 l 82 68',
11749         'STATE 5 a 29 957',
11750         'STATE 4 h 959 958',
11751         'STATE 3 m 28 960',
11752         'STATE 6 s 962 961',
11753         'STATE 4 n 100 963',
11754         'STATE 6 s 965 964',
11755         'STATE 3 p 230 966',
11756         'STATE 4 n 562 100',
11757         'STATE 5 v 968 967',
11758         'STATE 6 a 230 969',
11759         'STATE 3 c 29 970',
11760         'STATE 6 m 230 971',
11761         'STATE 3 t 230 972',
11762         'STATE 6 # 29 973',
11763         'STATE 1 0 975 974',
11764         'STATE 2 q 29 976',
11765         'STATE 4 s 756 977',
11766         'STATE 1 # 979 978',
11767         'STATE 4 v 42 980',
11768         'STATE 3 d 100 562',
11769         'STATE 1 c 68 981',
11770         'STATE 2 o 29 982',
11771         'STATE 3 m 42 983',
11772         'STATE 2 s 29 42',
11773         'STATE 1 r 100 29',
11774         'STATE 3 f 230 984',
11775         'STATE 4 k 42 985',
11776         'STATE 2 e 42 986',
11777         'STATE 3 b 28 987',
11778         'STATE 3 c 42 988',
11779         'STATE 2 t 42 989',
11780         'STATE 4 i 28 990',
11781         'STATE 4 d 100 991',
11782         'STATE 6 l 68 992',
11783         'STATE 3 r 994 993',
11784         'STATE 3 p 42 995',
11785         'STATE 3 x 100 996',
11786         'STATE 3 m 998 997',
11787         'STATE 3 l 1000 999',
11788         'STATE 6 r 68 100',
11789         'STATE 3 r 42 1001',
11790         'STATE 3 r 42 1002',
11791         'STATE 2 n 68 29',
11792         'STATE 2 i 529 42',
11793         'STATE 1 m 42 1003',
11794         'STATE 4 m 1005 1004',
11795         'STATE 2 # 42 68',
11796         'STATE 3 d 42 1006',
11797         'STATE 2 p 42 1007',
11798         'STATE 1 l 72 1008',
11799         'STATE 1 e 68 42',
11800         'STATE 1 d 68 42',
11801         'STATE 3 n 42 1009',
11802         'STATE 3 r 1011 1010',
11803         'STATE 2 n 1012 28',
11804         'STATE 5 d 82 1013',
11805         'STATE 6 e 63 82',
11806         'STATE 6 u 29 1014',
11807         'STATE 6 k 82 1015',
11808         'STATE 4 h 1017 1016',
11809         'STATE 3 i 562 1018',
11810         'STATE 3 f 100 1019',
11811         'STATE 2 e 68 230',
11812         'STATE 1 e 68 1020',
11813         'STATE 2 o 68 1021',
11814         'STATE 4 l 28 1022',
11815         'STATE 2 r 42 1023',
11816         'STATE 2 r 28 42',
11817         'STATE 1 a 72 42',
11818         'STATE 5 o 1025 1024',
11819         'STATE 6 # 29 1026',
11820         'STATE 2 m 29 230',
11821         'STATE 5 o 28 1027',
11822         'STATE 6 o 29 1028',
11823         'STATE 3 l 29 1029',
11824         'STATE 6 i 230 29',
11825         'STATE 2 i 230 1030',
11826         'STATE 6 d 26 28',
11827         'STATE 6 t 1032 1031',
11828         'STATE 1 u 28 1033',
11829         'STATE 6 o 1035 1034',
11830         'STATE 5 j 29 1036',
11831         'STATE 3 s 230 909',
11832         'STATE 6 e 230 1037',
11833         'STATE 3 g 230 1038',
11834         'STATE 6 z 28 1039',
11835         'STATE 3 s 26 1040',
11836         'STATE 6 u 230 1041',
11837         'STATE 3 b 100 29',
11838         'STATE 6 # 1042 126',
11839         'STATE 4 a 28 1043',
11840         'STATE 5 s 1045 1044',
11841         'STATE 6 b 1047 1046',
11842         'STATE 4 h 230 29',
11843         'STATE 5 c 1049 1048',
11844         'STATE 5 a 1051 1050',
11845         'STATE 6 # 100 1052',
11846         'STATE 3 l 100 1053',
11847         'STATE 4 m 1055 1054',
11848         'STATE 5 t 1057 1056',
11849         'STATE 5 m 1059 1058',
11850         'STATE 6 e 82 1060',
11851         'STATE 6 a 82 1061',
11852         'STATE 6 m 100 68',
11853         'STATE 4 w 82 1062',
11854         'STATE 2 c 68 1063',
11855         'STATE 2 r 230 1064',
11856         'STATE 2 h 82 1065',
11857         'STATE 3 f 82 1066',
11858         'STATE 4 b 1068 1067',
11859         'STATE 6 i 1070 1069',
11860         'STATE 6 t 230 1071',
11861         'STATE 4 d 29 1072',
11862         'STATE 1 o 68 1073',
11863         'STATE 3 l 1075 1074',
11864         'STATE 1 p 68 1076',
11865         'STATE 3 w 1078 1077',
11866         'STATE 3 r 28 1079',
11867         'STATE 2 c 82 1080',
11868         'STATE 6 n 1082 1081',
11869         'STATE 4 c 1084 1083',
11870         'STATE 6 c 562 1085',
11871         'STATE 6 n 68 1086',
11872         'STATE 3 c 1088 1087',
11873         'STATE 4 n 1090 1089',
11874         'STATE 6 a 1092 1091',
11875         'STATE 3 h 28 1093',
11876         'STATE 6 o 1095 1094',
11877         'STATE 4 n 1097 1096',
11878         'STATE 3 f 42 1098',
11879         'STATE 4 t 1100 1099',
11880         'STATE 4 n 100 1101',
11881         'STATE 4 v 68 1102',
11882         'STATE 6 e 1104 1103',
11883         'STATE 3 m 29 1105',
11884         'STATE 3 v 230 1106',
11885         'STATE 3 b 29 1107',
11886         'STATE 3 s 68 1108',
11887         'STATE 3 s 100 1109',
11888         'STATE 4 n 29 1110',
11889         'STATE 6 u 42 1111',
11890         'STATE 6 s 1113 1112',
11891         'STATE 4 d 68 1114',
11892         'STATE 2 t 68 1115',
11893         'STATE 4 t 42 1116',
11894         'STATE 4 z 42 193',
11895         'STATE 4 l 1118 1117',
11896         'STATE 2 i 1120 1119',
11897         'STATE 2 s 29 1121',
11898         'STATE 2 l 42 1122',
11899         'STATE 4 n 29 100',
11900         'STATE 1 # 1124 1123',
11901         'STATE 2 b 29 1125',
11902         'STATE 3 n 42 1126',
11903         'STATE 1 0 1127 42',
11904         'STATE 2 r 42 68',
11905         'STATE 6 z 29 1128',
11906         'STATE 4 n 100 1129',
11907         'STATE 6 n 68 873',
11908         'STATE 6 n 1131 1130',
11909         'STATE 6 l 1133 1132',
11910         'STATE 4 d 100 1134',
11911         'STATE 2 d 42 1135',
11912         'STATE 6 t 1137 1136',
11913         'STATE 6 y 42 1138',
11914         'STATE 3 h 1140 1139',
11915         'STATE 4 b 42 68',
11916         'STATE 2 # 1142 1141',
11917         'STATE 1 0 42 1143',
11918         'STATE 1 c 68 42',
11919         'STATE 4 d 42 1144',
11920         'STATE 1 # 42 68',
11921         'STATE 4 l 1146 1145',
11922         'STATE 2 s 42 1147',
11923         'STATE 3 g 1148 42',
11924         'STATE 3 g 42 1149',
11925         'STATE 6 l 68 1150',
11926         'STATE 2 t 42 1151',
11927         'STATE 4 l 68 28',
11928         'STATE 5 r 82 1152',
11929         'STATE 6 i 82 1153',
11930         'STATE 6 l 82 1154',
11931         'STATE 4 m 1156 1155',
11932         'STATE 2 r 1157 68',
11933         'STATE 2 c 1159 1158',
11934         'STATE 3 l 68 1160',
11935         'STATE 2 t 68 1161',
11936         'STATE 2 a 68 1162',
11937         'STATE 2 r 68 28',
11938         'STATE 3 s 28 1163',
11939         'STATE 6 # 1165 1164',
11940         'STATE 6 # 1166 28',
11941         'STATE 3 h 1168 1167',
11942         'STATE 1 e 28 1169',
11943         'STATE 5 # 28 1170',
11944         'STATE 3 i 28 1171',
11945         'STATE 1 s 29 1172',
11946         'STATE 1 m 29 1173',
11947         'STATE 1 a 28 26',
11948         'STATE 3 t 28 1174',
11949         'STATE 5 q 1176 1175',
11950         'STATE 5 t 1178 1177',
11951         'STATE 3 f 29 1179',
11952         'STATE 6 i 29 1180',
11953         'STATE 6 c 28 1181',
11954         'STATE 2 # 1182 100',
11955         'STATE 3 k 26 1183',
11956         'STATE 3 c 1185 1184',
11957         'STATE 5 y 126 28',
11958         'STATE 4 w 1187 1186',
11959         'STATE 3 w 1189 1188',
11960         'STATE 6 k 29 68',
11961         'STATE 3 b 711 1190',
11962         'STATE 3 l 100 42',
11963         'STATE 6 s 1192 1191',
11964         'STATE 6 e 1194 1193',
11965         'STATE 5 k 100 1195',
11966         'STATE 2 u 29 1196',
11967         'STATE 6 i 42 1197',
11968         'STATE 3 r 1198 42',
11969         'STATE 5 r 1200 1199',
11970         'STATE 5 a 1202 1201',
11971         'STATE 5 n 1204 1203',
11972         'STATE 6 o 100 1205',
11973         'STATE 5 u 68 1206',
11974         'STATE 6 o 29 230',
11975         'STATE 6 r 82 29',
11976         'STATE 6 o 100 1207',
11977         'STATE 4 o 28 1208',
11978         'STATE 1 a 133 42',
11979         'STATE 2 n 29 1209',
11980         'STATE 2 s 1211 1210',
11981         'STATE 3 c 82 1212',
11982         'STATE 3 h 1214 1213',
11983         'STATE 1 b 42 1215',
11984         'STATE 6 r 1217 1216',
11985         'STATE 4 l 230 68',
11986         'STATE 4 m 68 1218',
11987         'STATE 4 n 29 68',
11988         'STATE 2 a 68 937',
11989         'STATE 1 n 42 1219',
11990         'STATE 1 g 72 42',
11991         'STATE 3 c 42 1220',
11992         'STATE 2 a 1222 1221',
11993         'STATE 5 g 100 1223',
11994         'STATE 2 s 42 28',
11995         'STATE 2 g 1225 1224',
11996         'STATE 4 g 68 1226',
11997         'STATE 4 m 68 100',
11998         'STATE 3 h 100 1227',
11999         'STATE 5 k 100 1228',
12000         'STATE 6 a 100 1229',
12001         'STATE 3 h 100 1230',
12002         'STATE 5 l 1231 29',
12003         'STATE 5 p 100 1232',
12004         'STATE 3 o 28 1233',
12005         'STATE 5 g 1235 1234',
12006         'STATE 6 e 29 1236',
12007         'STATE 5 r 28 29',
12008         'STATE 5 n 28 1237',
12009         'STATE 6 n 1239 1238',
12010         'STATE 4 b 562 1240',
12011         'STATE 3 l 68 29',
12012         'STATE 3 j 68 562',
12013         'STATE 4 b 1242 1241',
12014         'STATE 4 n 1244 1243',
12015         'STATE 3 d 42 1245',
12016         'STATE 4 t 68 29',
12017         'STATE 4 h 68 1246',
12018         'STATE 6 # 82 1247',
12019         'STATE 5 t 82 1248',
12020         'STATE 6 o 29 1249',
12021         'STATE 6 o 1251 1250',
12022         'STATE 6 e 230 1252',
12023         'STATE 6 g 100 1253',
12024         'STATE 6 y 68 1254',
12025         'STATE 5 m 82 1255',
12026         'STATE 1 # 1257 1256',
12027         'STATE 6 k 608 1258',
12028         'STATE 4 o 28 1259',
12029         'STATE 3 b 68 1260',
12030         'STATE 4 n 100 1261',
12031         'STATE 3 v 230 68',
12032         'STATE 2 # 1262 100',
12033         'STATE 2 # 230 42',
12034         'STATE 3 l 42 1263',
12035         'STATE 3 t 42 68',
12036         'STATE 2 g 1265 1264',
12037         'STATE 1 # 29 1266',
12038         'STATE 2 # 1268 1267',
12039         'STATE 3 t 29 1269',
12040         'STATE 4 s 29 42',
12041         'STATE 5 c 42 1270',
12042         'STATE 3 d 42 1271',
12043         'STATE 6 o 1273 1272',
12044         'STATE 4 b 1275 1274',
12045         'STATE 4 t 1277 1276',
12046         'STATE 2 p 230 1278',
12047         'STATE 2 g 42 1279',
12048         'STATE 4 v 1280 100',
12049         'STATE 3 h 42 1281',
12050         'STATE 2 f 42 1282',
12051         'STATE 6 i 68 1283',
12052         'STATE 4 n 68 1284',
12053         'STATE 4 t 68 1285',
12054         'STATE 4 n 1287 1286',
12055         'STATE 4 z 42 100',
12056         'STATE 4 k 42 1288',
12057         'STATE 3 t 100 42',
12058         'STATE 3 l 42 271',
12059         'STATE 4 y 42 1289',
12060         'STATE 3 g 42 1290',
12061         'STATE 1 e 42 1291',
12062         'STATE 3 f 42 1096',
12063         'STATE 2 n 72 42',
12064         'STATE 3 c 42 68',
12065         'STATE 1 i 247 1292',
12066         'STATE 1 o 247 331',
12067         'STATE 2 a 29 82',
12068         'STATE 3 f 1294 1293',
12069         'STATE 6 s 82 1295',
12070         'STATE 4 a 28 1296',
12071         'STATE 2 g 100 1297',
12072         'STATE 1 a 68 29',
12073         'STATE 3 y 562 1298',
12074         'STATE 3 h 68 562',
12075         'STATE 3 n 68 1299',
12076         'STATE 2 o 230 1300',
12077         'STATE 2 i 29 1301',
12078         'STATE 2 s 42 72',
12079         'STATE 5 # 1303 1302',
12080         'STATE 3 y 29 1304',
12081         'STATE 2 i 230 29',
12082         'STATE 1 d 28 1305',
12083         'STATE 1 s 100 28',
12084         'STATE 6 # 28 1306',
12085         'STATE 1 h 28 1307',
12086         'STATE 2 a 1308 29',
12087         'STATE 2 e 230 1309',
12088         'STATE 3 u 230 1310',
12089         'STATE 1 e 26 28',
12090         'STATE 6 i 1312 1311',
12091         'STATE 3 m 29 230',
12092         'STATE 5 d 1314 1313',
12093         'STATE 3 m 230 1315',
12094         'STATE 5 t 230 1316',
12095         'STATE 6 h 29 400',
12096         'STATE 6 m 28 1317',
12097         'STATE 6 n 1319 1318',
12098         'STATE 6 l 230 1320',
12099         'STATE 3 f 29 1321',
12100         'STATE 6 a 230 100',
12101         'STATE 5 t 1323 1322',
12102         'STATE 6 k 29 82',
12103         'STATE 6 # 1325 1324',
12104         'STATE 5 k 1327 1326',
12105         'STATE 6 y 68 1328',
12106         'STATE 3 w 1330 1329',
12107         'STATE 5 t 68 1331',
12108         'STATE 6 y 68 1332',
12109         'STATE 2 f 230 1333',
12110         'STATE 5 d 1335 1334',
12111         'STATE 1 t 29 1336',
12112         'STATE 6 l 100 1337',
12113         'STATE 1 a 42 1338',
12114         'STATE 4 w 1340 1339',
12115         'STATE 6 o 100 1341',
12116         'STATE 5 u 68 1342',
12117         'STATE 6 n 68 1343',
12118         'STATE 6 l 100 1344',
12119         'STATE 6 o 68 100',
12120         'STATE 6 a 562 100',
12121         'STATE 5 p 100 1345',
12122         'STATE 6 i 29 100',
12123         'STATE 4 g 1347 1346',
12124         'STATE 3 d 29 230',
12125         'STATE 3 w 82 1348',
12126         'STATE 1 n 82 1349',
12127         'STATE 2 e 1351 1350',
12128         'STATE 4 v 1353 1352',
12129         'STATE 2 s 100 1354',
12130         'STATE 1 o 100 68',
12131         'STATE 6 u 68 1355',
12132         'STATE 4 m 100 1226',
12133         'STATE 6 g 68 1356',
12134         'STATE 3 i 42 1357',
12135         'STATE 3 t 42 1358',
12136         'STATE 3 u 1360 1359',
12137         'STATE 3 v 29 1361',
12138         'STATE 5 k 82 29',
12139         'STATE 4 n 1363 1362',
12140         'STATE 6 a 68 1364',
12141         'STATE 4 n 100 68',
12142         'STATE 3 r 100 29',
12143         'STATE 5 t 100 1365',
12144         'STATE 6 m 562 1366',
12145         'STATE 6 e 29 1367',
12146         'STATE 3 h 100 29',
12147         'STATE 5 l 100 82',
12148         'STATE 4 o 1369 1368',
12149         'STATE 3 v 1371 1370',
12150         'STATE 6 e 1373 1372',
12151         'STATE 5 l 29 1374',
12152         'STATE 5 t 28 1375',
12153         'STATE 4 k 68 1376',
12154         'STATE 4 x 100 1377',
12155         'STATE 4 h 29 68',
12156         'STATE 3 l 230 1378',
12157         'STATE 3 l 42 100',
12158         'STATE 4 k 1380 1379',
12159         'STATE 3 m 100 1381',
12160         'STATE 3 f 42 1382',
12161         'STATE 4 p 68 1383',
12162         'STATE 5 u 1385 1384',
12163         'STATE 5 k 82 1386',
12164         'STATE 3 s 1388 1387',
12165         'STATE 6 e 1389 82',
12166         'STATE 3 b 230 29',
12167         'STATE 6 o 100 1390',
12168         'STATE 6 r 100 1391',
12169         'STATE 3 c 68 1392',
12170         'STATE 5 r 29 1393',
12171         'STATE 6 s 1395 1394',
12172         'STATE 2 q 29 1396',
12173         'STATE 6 m 1398 1397',
12174         'STATE 4 n 100 1399',
12175         'STATE 4 l 1401 1400',
12176         'STATE 4 l 1403 1402',
12177         'STATE 4 t 42 1404',
12178         'STATE 3 n 42 68',
12179         'STATE 4 l 1405 42',
12180         'STATE 4 c 42 100',
12181         'STATE 1 o 42 100',
12182         'STATE 4 m 1407 1406',
12183         'STATE 3 m 1409 1408',
12184         'STATE 3 x 100 1410',
12185         'STATE 1 t 42 1411',
12186         'STATE 3 r 42 1412',
12187         'STATE 4 m 1414 1413',
12188         'STATE 2 n 100 42',
12189         'STATE 6 l 230 1415',
12190         'STATE 6 r 100 1416',
12191         'STATE 3 i 68 1417',
12192         'STATE 6 a 562 1418',
12193         'STATE 4 m 68 42',
12194         'STATE 2 t 42 1419',
12195         'STATE 2 t 100 42',
12196         'STATE 6 n 100 42',
12197         'STATE 4 t 42 1420',
12198         'STATE 6 y 1422 1421',
12199         'STATE 4 m 100 1423',
12200         'STATE 4 n 68 100',
12201         'STATE 3 m 1425 1424',
12202         'STATE 3 p 100 68',
12203         'STATE 4 d 42 1426',
12204         'STATE 1 r 68 42',
12205         'STATE 4 k 42 1427',
12206         'STATE 3 g 29 1428',
12207         'STATE 3 l 29 1429',
12208         'STATE 6 h 82 1430',
12209         'STATE 5 s 82 63',
12210         'STATE 3 p 82 63',
12211         'STATE 4 z 230 1431',
12212         'STATE 3 h 671 1432',
12213         'STATE 1 t 230 1433',
12214         'STATE 3 y 68 1434',
12215         'STATE 2 g 68 1435',
12216         'STATE 2 e 68 1436',
12217         'STATE 6 s 1438 1437',
12218         'STATE 3 g 28 1439',
12219         'STATE 3 c 29 1440',
12220         'STATE 1 m 29 1441',
12221         'STATE 5 # 28 29',
12222         'STATE 2 l 28 1442',
12223         'STATE 5 # 29 28',
12224         'STATE 1 t 29 1443',
12225         'STATE 1 a 28 1444',
12226         'STATE 6 e 1445 29',
12227         'STATE 5 t 29 1446',
12228         'STATE 3 k 29 1447',
12229         'STATE 3 c 230 29',
12230         'STATE 3 c 230 1251',
12231         'STATE 3 k 29 1448',
12232         'STATE 3 b 1450 1449',
12233         'STATE 3 p 28 1451',
12234         'STATE 3 m 28 26',
12235         'STATE 3 h 28 1452',
12236         'STATE 3 b 1453 29',
12237         'STATE 3 b 1455 1454',
12238         'STATE 4 t 1457 1456',
12239         'STATE 5 d 1459 1458',
12240         'STATE 5 d 68 1460',
12241         'STATE 5 d 1461 68',
12242         'STATE 6 # 29 82',
12243         'STATE 1 r 68 1462',
12244         'STATE 5 a 1464 1463',
12245         'STATE 5 d 29 82',
12246         'STATE 5 d 1466 1465',
12247         'STATE 6 i 1468 1467',
12248         'STATE 3 h 100 1469',
12249         'STATE 3 m 68 1470',
12250         'STATE 3 l 1472 1471',
12251         'STATE 3 t 100 1473',
12252         'STATE 6 u 100 1474',
12253         'STATE 2 t 42 72',
12254         'STATE 5 a 1476 1475',
12255         'STATE 5 a 68 29',
12256         'STATE 6 i 1478 1477',
12257         'STATE 6 r 100 1479',
12258         'STATE 6 z 100 1480',
12259         'STATE 5 g 1482 1481',
12260         'STATE 6 i 1484 1483',
12261         'STATE 4 c 68 1485',
12262         'STATE 3 t 562 1486',
12263         'STATE 3 c 82 1487',
12264         'STATE 1 y 68 29',
12265         'STATE 3 d 68 1488',
12266         'STATE 3 r 82 1489',
12267         'STATE 3 r 1491 1490',
12268         'STATE 6 r 42 230',
12269         'STATE 2 c 28 68',
12270         'STATE 6 l 1493 1492',
12271         'STATE 6 m 68 1070',
12272         'STATE 2 o 1495 1494',
12273         'STATE 1 t 1496 42',
12274         'STATE 2 u 1498 1497',
12275         'STATE 6 r 230 1499',
12276         'STATE 5 o 331 1500',
12277         'STATE 2 v 68 1501',
12278         'STATE 5 c 230 29',
12279         'STATE 4 c 68 1502',
12280         'STATE 6 e 42 100',
12281         'STATE 6 p 562 1503',
12282         'STATE 6 a 100 1504',
12283         'STATE 6 e 1506 1505',
12284         'STATE 6 i 1507 230',
12285         'STATE 3 i 68 1508',
12286         'STATE 5 d 100 1509',
12287         'STATE 6 i 1511 1510',
12288         'STATE 3 t 100 1512',
12289         'STATE 5 r 29 1513',
12290         'STATE 3 b 28 1514',
12291         'STATE 3 c 1516 1515',
12292         'STATE 3 l 1518 1517',
12293         'STATE 4 p 230 1519',
12294         'STATE 6 l 1521 1520',
12295         'STATE 3 n 230 1522',
12296         'STATE 3 c 68 1523',
12297         'STATE 3 c 100 1524',
12298         'STATE 3 b 42 1525',
12299         'STATE 3 m 1527 1526',
12300         'STATE 3 v 562 1528',
12301         'STATE 3 b 1530 1529',
12302         'STATE 6 e 100 1531',
12303         'STATE 6 a 100 1532',
12304         'STATE 3 b 230 82',
12305         'STATE 6 i 82 100',
12306         'STATE 3 m 100 1533',
12307         'STATE 3 k 100 1534',
12308         'STATE 4 h 29 1535',
12309         'STATE 4 b 1537 1536',
12310         'STATE 4 l 68 1538',
12311         'STATE 3 t 1540 1539',
12312         'STATE 6 f 100 1541',
12313         'STATE 3 m 100 1542',
12314         'STATE 4 l 100 1543',
12315         'STATE 4 c 100 1544',
12316         'STATE 1 0 68 1545',
12317         'STATE 3 r 100 1546',
12318         'STATE 1 0 68 100',
12319         'STATE 4 m 42 1547',
12320         'STATE 2 a 29 42',
12321         'STATE 3 r 1549 1548',
12322         'STATE 1 o 100 1550',
12323         'STATE 3 j 68 1551',
12324         'STATE 4 c 100 1552',
12325         'STATE 2 c 1554 1553',
12326         'STATE 6 h 42 1555',
12327         'STATE 6 e 28 42',
12328         'STATE 6 r 1557 1556',
12329         'STATE 6 n 68 1558',
12330         'STATE 6 x 68 1559',
12331         'STATE 6 l 100 68',
12332         'STATE 6 t 100 1560',
12333         'STATE 2 a 68 29',
12334         'STATE 2 c 42 1561',
12335         'STATE 4 m 42 1562',
12336         'STATE 4 p 42 1563',
12337         'STATE 3 r 100 42',
12338         'STATE 4 c 100 68',
12339         'STATE 3 p 68 1564',
12340         'STATE 4 d 100 68',
12341         'STATE 1 # 42 1565',
12342         'STATE 3 c 42 1566',
12343         'STATE 3 v 42 1567',
12344         'STATE 1 d 68 1568',
12345         'STATE 5 t 1570 1569',
12346         'STATE 4 x 1572 1571',
12347         'STATE 3 r 100 1573',
12348         'STATE 1 b 68 1574',
12349         'STATE 3 a 29 1575',
12350         'STATE 2 a 1576 68',
12351         'STATE 3 y 68 100',
12352         'STATE 6 z 28 1577',
12353         'STATE 3 y 29 1578',
12354         'STATE 2 s 1580 1579',
12355         'STATE 5 z 230 1581',
12356         'STATE 3 c 28 1582',
12357         'STATE 5 d 29 1583',
12358         'STATE 1 c 29 1584',
12359         'STATE 3 p 26 1585',
12360         'STATE 5 m 1587 1586',
12361         'STATE 5 p 230 1588',
12362         'STATE 3 g 29 1589',
12363         'STATE 3 p 29 1590',
12364         'STATE 3 c 28 26',
12365         'STATE 6 n 100 28',
12366         'STATE 6 o 230 26',
12367         'STATE 3 m 28 1591',
12368         'STATE 6 a 100 29',
12369         'STATE 4 e 1593 1592',
12370         'STATE 5 h 1595 1594',
12371         'STATE 2 a 1597 1596',
12372         'STATE 6 # 68 1598',
12373         'STATE 5 y 68 1599',
12374         'STATE 2 e 68 1600',
12375         'STATE 5 t 82 1601',
12376         'STATE 1 e 1603 1602',
12377         'STATE 2 d 82 1604',
12378         'STATE 5 s 1606 1605',
12379         'STATE 3 m 100 1607',
12380         'STATE 3 b 100 1608',
12381         'STATE 1 r 100 1609',
12382         'STATE 2 r 29 1610',
12383         'STATE 1 f 100 68',
12384         'STATE 1 f 100 1611',
12385         'STATE 5 y 1613 1612',
12386         'STATE 3 h 100 1614',
12387         'STATE 2 l 68 1615',
12388         'STATE 3 i 100 1616',
12389         'STATE 6 o 100 29',
12390         'STATE 5 u 1618 1617',
12391         'STATE 6 l 230 1619',
12392         'STATE 6 e 1621 1620',
12393         'STATE 4 d 230 100',
12394         'STATE 5 m 100 1622',
12395         'STATE 6 l 68 1623',
12396         'STATE 6 r 100 1624',
12397         'STATE 6 e 100 1625',
12398         'STATE 5 k 100 1626',
12399         'STATE 5 b 230 1627',
12400         'STATE 4 d 100 1628',
12401         'STATE 6 i 29 68',
12402         'STATE 1 p 68 1629',
12403         'STATE 2 o 68 1630',
12404         'STATE 3 w 68 82',
12405         'STATE 4 n 1631 68',
12406         'STATE 2 t 68 1632',
12407         'STATE 4 v 100 1633',
12408         'STATE 4 p 68 100',
12409         'STATE 3 r 1634 1120',
12410         'STATE 3 r 68 1289',
12411         'STATE 3 g 42 68',
12412         'STATE 5 a 1636 1635',
12413         'STATE 3 n 68 100',
12414         'STATE 4 d 29 1637',
12415         'STATE 6 o 100 1638',
12416         'STATE 4 s 100 1101',
12417         'STATE 5 n 68 29',
12418         'STATE 6 f 562 1639',
12419         'STATE 6 s 29 1640',
12420         'STATE 5 y 1642 1641',
12421         'STATE 5 l 1644 1643',
12422         'STATE 5 l 230 72',
12423         'STATE 5 t 1646 1645',
12424         'STATE 6 l 100 1647',
12425         'STATE 6 a 1511 100',
12426         'STATE 3 m 230 100',
12427         'STATE 3 l 42 1648',
12428         'STATE 6 i 29 1649',
12429         'STATE 6 e 28 1650',
12430         'STATE 3 i 29 1651',
12431         'STATE 4 n 68 1493',
12432         'STATE 4 n 100 1652',
12433         'STATE 4 m 230 1653',
12434         'STATE 3 c 68 529',
12435         'STATE 6 r 1655 1654',
12436         'STATE 3 m 100 1656',
12437         'STATE 6 r 68 230',
12438         'STATE 3 f 68 1657',
12439         'STATE 3 n 230 1511',
12440         'STATE 3 l 230 1658',
12441         'STATE 5 t 1660 1659',
12442         'STATE 6 i 100 1661',
12443         'STATE 6 t 68 100',
12444         'STATE 5 l 1663 1662',
12445         'STATE 5 l 100 42',
12446         'STATE 3 g 100 1185',
12447         'STATE 6 i 100 230',
12448         'STATE 6 n 68 100',
12449         'STATE 6 d 100 1664',
12450         'STATE 5 l 29 1665',
12451         'STATE 2 q 29 1666',
12452         'STATE 2 s 42 68',
12453         'STATE 3 s 100 1667',
12454         'STATE 6 k 29 1668',
12455         'STATE 4 b 42 1669',
12456         'STATE 3 w 230 1670',
12457         'STATE 2 # 230 100',
12458         'STATE 3 n 29 1671',
12459         'STATE 2 a 68 1672',
12460         'STATE 2 c 68 100',
12461         'STATE 1 d 100 1673',
12462         'STATE 3 m 100 1674',
12463         'STATE 2 o 1676 1675',
12464         'STATE 2 g 42 1677',
12465         'STATE 1 e 100 68',
12466         'STATE 4 n 42 1678',
12467         'STATE 4 l 100 230',
12468         'STATE 2 g 68 1679',
12469         'STATE 4 v 42 100',
12470         'STATE 2 c 42 1680',
12471         'STATE 2 s 42 1681',
12472         'STATE 4 t 273 1682',
12473         'STATE 6 r 68 1683',
12474         'STATE 4 v 1685 1684',
12475         'STATE 3 n 100 1686',
12476         'STATE 4 d 68 1687',
12477         'STATE 2 t 1688 42',
12478         'STATE 3 h 1690 1689',
12479         'STATE 3 c 68 1691',
12480         'STATE 1 e 42 1692',
12481         'STATE 2 o 42 1693',
12482         'STATE 2 e 42 1694',
12483         'STATE 3 d 247 1695',
12484         'STATE 3 t 63 1696',
12485         'STATE 6 z 82 63',
12486         'STATE 4 v 230 1697',
12487         'STATE 3 n 562 1698',
12488         'STATE 2 t 68 1699',
12489         'STATE 2 r 68 1700',
12490         'STATE 3 u 230 1701',
12491         'STATE 1 r 562 68',
12492         'STATE 2 a 1703 1702',
12493         'STATE 3 z 28 1704',
12494         'STATE 3 a 29 1705',
12495         'STATE 3 s 28 29',
12496         'STATE 3 a 29 1706',
12497         'STATE 2 a 28 230',
12498         'STATE 1 m 28 29',
12499         'STATE 3 t 29 1707',
12500         'STATE 2 s 26 1708',
12501         'STATE 3 f 29 1709',
12502         'STATE 3 p 29 1710',
12503         'STATE 3 s 29 1711',
12504         'STATE 3 t 29 1712',
12505         'STATE 5 l 29 1713',
12506         'STATE 6 n 28 1714',
12507         'STATE 2 a 1716 1715',
12508         'STATE 6 # 42 28',
12509         'STATE 5 k 100 1717',
12510         'STATE 4 c 1719 1718',
12511         'STATE 4 c 1721 1720',
12512         'STATE 1 h 68 100',
12513         'STATE 2 a 29 1722',
12514         'STATE 5 t 68 1723',
12515         'STATE 3 n 29 1724',
12516         'STATE 5 k 82 100',
12517         'STATE 2 e 154 68',
12518         'STATE 2 n 82 154',
12519         'STATE 2 a 1726 1725',
12520         'STATE 6 l 1728 1727',
12521         'STATE 6 k 100 1729',
12522         'STATE 6 r 230 1730',
12523         'STATE 5 n 68 1731',
12524         'STATE 2 s 100 1732',
12525         'STATE 3 i 29 1733',
12526         'STATE 2 d 1735 1734',
12527         'STATE 3 i 68 1736',
12528         'STATE 2 l 42 68',
12529         'STATE 3 r 1738 1737',
12530         'STATE 1 g 68 1739',
12531         'STATE 1 i 29 100',
12532         'STATE 5 h 1741 1740',
12533         'STATE 4 b 68 1742',
12534         'STATE 4 g 100 1743',
12535         'STATE 6 a 68 1744',
12536         'STATE 4 g 68 29',
12537         'STATE 5 b 1745 100',
12538         'STATE 6 s 68 1746',
12539         'STATE 5 a 100 1747',
12540         'STATE 6 o 562 100',
12541         'STATE 6 e 1749 1748',
12542         'STATE 5 v 230 100',
12543         'STATE 4 t 100 1750',
12544         'STATE 6 o 1752 1751',
12545         'STATE 2 r 68 1753',
12546         'STATE 6 v 100 1754',
12547         'STATE 6 n 68 29',
12548         'STATE 4 d 68 1755',
12549         'STATE 2 e 42 68',
12550         'STATE 5 o 1757 1756',
12551         'STATE 6 # 608 1758',
12552         'STATE 5 t 29 1759',
12553         'STATE 4 p 100 1760',
12554         'STATE 6 g 562 1761',
12555         'STATE 6 i 100 68',
12556         'STATE 5 u 1763 1762',
12557         'STATE 6 # 42 1764',
12558         'STATE 3 c 1766 1765',
12559         'STATE 4 c 68 1767',
12560         'STATE 5 u 1769 1768',
12561         'STATE 3 s 1770 100',
12562         'STATE 6 i 100 1771',
12563         'STATE 3 d 42 625',
12564         'STATE 5 u 100 1772',
12565         'STATE 3 k 28 1773',
12566         'STATE 3 z 68 1774',
12567         'STATE 4 g 230 1775',
12568         'STATE 4 f 100 230',
12569         'STATE 3 c 1777 1776',
12570         'STATE 4 d 42 1778',
12571         'STATE 4 m 68 1779',
12572         'STATE 3 p 100 1780',
12573         'STATE 4 t 42 1781',
12574         'STATE 5 k 1783 1782',
12575         'STATE 3 s 82 1784',
12576         'STATE 6 r 562 1785',
12577         'STATE 3 f 82 1786',
12578         'STATE 3 c 82 1787',
12579         'STATE 6 m 100 1788',
12580         'STATE 5 d 29 1789',
12581         'STATE 6 m 1791 1790',
12582         'STATE 4 k 29 1792',
12583         'STATE 6 l 1794 1793',
12584         'STATE 4 t 68 100',
12585         'STATE 3 d 1796 1795',
12586         'STATE 4 t 100 1797',
12587         'STATE 3 h 100 1798',
12588         'STATE 1 0 100 1799',
12589         'STATE 4 p 42 100',
12590         'STATE 4 d 512 1800',
12591         'STATE 3 m 230 68',
12592         'STATE 1 p 42 1801',
12593         'STATE 3 r 1803 1802',
12594         'STATE 2 h 68 1804',
12595         'STATE 5 g 1806 1805',
12596         'STATE 6 k 1808 1807',
12597         'STATE 4 p 42 1809',
12598         'STATE 2 a 68 1810',
12599         'STATE 6 t 68 1811',
12600         'STATE 6 n 230 100',
12601         'STATE 3 c 68 1812',
12602         'STATE 2 d 68 1813',
12603         'STATE 4 v 100 42',
12604         'STATE 6 e 100 1814',
12605         'STATE 4 b 100 1815',
12606         'STATE 3 g 68 1816',
12607         'STATE 4 m 42 1817',
12608         'STATE 1 o 42 1818',
12609         'STATE 3 c 42 29',
12610         'STATE 2 a 247 1819',
12611         'STATE 3 h 773 1820',
12612         'STATE 3 a 29 1821',
12613         'STATE 3 r 562 100',
12614         'STATE 3 d 68 1822',
12615         'STATE 2 s 68 1823',
12616         'STATE 2 t 1825 1824',
12617         'STATE 6 l 28 1826',
12618         'STATE 6 a 29 1827',
12619         'STATE 1 r 29 28',
12620         'STATE 3 n 1829 1828',
12621         'STATE 5 d 1831 1830',
12622         'STATE 2 l 29 1832',
12623         'STATE 2 e 28 1833',
12624         'STATE 3 l 29 1834',
12625         'STATE 2 # 1314 230',
12626         'STATE 3 d 29 1835',
12627         'STATE 3 p 29 1836',
12628         'STATE 3 v 230 1837',
12629         'STATE 3 g 28 1838',
12630         'STATE 5 y 1840 1839',
12631         'STATE 4 o 28 1841',
12632         'STATE 4 b 29 1842',
12633         'STATE 6 # 68 29',
12634         'STATE 1 e 1844 1843',
12635         'STATE 6 e 100 1845',
12636         'STATE 2 m 1846 100',
12637         'STATE 6 a 29 100',
12638         'STATE 5 v 29 1847',
12639         'STATE 6 i 29 1059',
12640         'STATE 2 i 1849 1848',
12641         'STATE 6 n 1851 1850',
12642         'STATE 2 c 1853 1852',
12643         'STATE 5 t 1854 100',
12644         'STATE 2 x 100 1855',
12645         'STATE 6 n 100 1856',
12646         'STATE 1 a 100 29',
12647         'STATE 1 e 100 1857',
12648         'STATE 1 n 100 1858',
12649         'STATE 1 n 68 1859',
12650         'STATE 3 v 100 68',
12651         'STATE 5 t 1861 1860',
12652         'STATE 3 i 68 1862',
12653         'STATE 1 e 562 1863',
12654         'STATE 1 c 68 1864',
12655         'STATE 4 s 1866 1865',
12656         'STATE 4 s 100 1867',
12657         'STATE 6 l 68 1868',
12658         'STATE 6 i 68 1869',
12659         'STATE 6 u 230 68',
12660         'STATE 6 i 562 1205',
12661         'STATE 6 r 100 1870',
12662         'STATE 5 c 1871 100',
12663         'STATE 6 a 1873 1872',
12664         'STATE 5 v 230 1874',
12665         'STATE 4 p 68 1875',
12666         'STATE 6 u 68 1876',
12667         'STATE 2 e 29 1877',
12668         'STATE 3 h 1879 1878',
12669         'STATE 1 r 230 68',
12670         'STATE 4 b 68 1880',
12671         'STATE 3 a 29 1881',
12672         'STATE 6 # 29 1882',
12673         'STATE 4 h 28 1883',
12674         'STATE 2 q 100 1884',
12675         'STATE 4 c 100 1885',
12676         'STATE 6 i 562 100',
12677         'STATE 6 a 1887 1886',
12678         'STATE 6 # 29 1888',
12679         'STATE 4 t 29 1889',
12680         'STATE 5 u 1891 1890',
12681         'STATE 5 t 230 1892',
12682         'STATE 4 b 42 1893',
12683         'STATE 5 y 100 1894',
12684         'STATE 6 s 42 1895',
12685         'STATE 6 o 230 1185',
12686         'STATE 5 n 562 1896',
12687         'STATE 3 m 100 1897',
12688         'STATE 6 # 28 42',
12689         'STATE 6 b 100 1898',
12690         'STATE 4 t 68 1899',
12691         'STATE 4 j 68 1900',
12692         'STATE 4 p 68 1901',
12693         'STATE 3 c 230 1902',
12694         'STATE 3 c 1904 1903',
12695         'STATE 3 h 100 1905',
12696         'STATE 3 c 42 1906',
12697         'STATE 5 l 1908 1907',
12698         'STATE 6 o 100 1909',
12699         'STATE 6 o 29 1910',
12700         'STATE 6 u 562 100',
12701         'STATE 3 s 42 100',
12702         'STATE 3 v 100 1911',
12703         'STATE 3 m 68 1685',
12704         'STATE 5 a 29 1912',
12705         'STATE 6 l 1914 1913',
12706         'STATE 2 a 68 28',
12707         'STATE 2 r 68 1915',
12708         'STATE 2 d 68 1916',
12709         'STATE 3 r 1917 68',
12710         'STATE 3 t 100 1918',
12711         'STATE 6 d 42 68',
12712         'STATE 3 l 100 1554',
12713         'STATE 2 o 230 1919',
12714         'STATE 4 v 100 29',
12715         'STATE 4 l 68 1920',
12716         'STATE 4 f 230 1921',
12717         'STATE 3 k 1923 1922',
12718         'STATE 4 b 68 42',
12719         'STATE 3 r 42 1924',
12720         'STATE 6 e 42 1925',
12721         'STATE 3 d 42 28',
12722         'STATE 6 l 1927 1926',
12723         'STATE 4 c 68 1928',
12724         'STATE 2 a 68 1929',
12725         'STATE 3 h 68 100',
12726         'STATE 4 l 68 1930',
12727         'STATE 4 b 68 1931',
12728         'STATE 2 b 100 29',
12729         'STATE 4 c 1047 1932',
12730         'STATE 6 r 100 1281',
12731         'STATE 3 r 100 1933',
12732         'STATE 4 s 68 42',
12733         'STATE 2 p 42 1934',
12734         'STATE 1 r 247 1935',
12735         'STATE 3 b 63 1936',
12736         'STATE 3 c 100 1937',
12737         'STATE 2 l 68 1938',
12738         'STATE 3 l 68 1939',
12739         'STATE 3 p 100 1940',
12740         'STATE 3 r 100 68',
12741         'STATE 6 t 1942 1941',
12742         'STATE 6 i 28 29',
12743         'STATE 2 l 1944 1943',
12744         'STATE 1 o 29 28',
12745         'STATE 5 s 28 29',
12746         'STATE 3 i 28 1945',
12747         'STATE 6 e 29 1946',
12748         'STATE 3 h 28 1947',
12749         'STATE 3 t 29 1948',
12750         'STATE 3 j 29 1949',
12751         'STATE 2 # 1950 29',
12752         'STATE 3 c 29 1951',
12753         'STATE 3 l 100 230',
12754         'STATE 3 w 1953 1952',
12755         'STATE 4 c 68 1954',
12756         'STATE 6 i 1956 1955',
12757         'STATE 4 g 100 1957',
12758         'STATE 2 r 230 1958',
12759         'STATE 2 n 230 1959',
12760         'STATE 6 a 1961 1960',
12761         'STATE 6 # 562 100',
12762         'STATE 1 d 100 1962',
12763         'STATE 6 g 100 1963',
12764         'STATE 3 y 230 68',
12765         'STATE 6 k 230 1964',
12766         'STATE 3 t 230 68',
12767         'STATE 1 r 100 1965',
12768         'STATE 1 r 68 100',
12769         'STATE 1 i 100 68',
12770         'STATE 3 m 68 1966',
12771         'STATE 6 h 100 68',
12772         'STATE 1 o 100 1967',
12773         'STATE 3 r 29 1968',
12774         'STATE 1 r 68 1969',
12775         'STATE 5 s 68 100',
12776         'STATE 2 p 100 1970',
12777         'STATE 2 e 100 1971',
12778         'STATE 1 s 68 1972',
12779         'STATE 2 o 68 1973',
12780         'STATE 6 r 1975 1974',
12781         'STATE 5 s 68 1976',
12782         'STATE 6 i 68 1977',
12783         'STATE 6 n 68 1978',
12784         'STATE 4 b 68 1979',
12785         'STATE 6 d 230 100',
12786         'STATE 6 h 100 1980',
12787         'STATE 5 g 562 100',
12788         'STATE 5 v 100 1981',
12789         'STATE 5 g 100 1982',
12790         'STATE 4 s 68 1983',
12791         'STATE 6 a 1985 1984',
12792         'STATE 1 0 100 1986',
12793         'STATE 3 g 68 1987',
12794         'STATE 2 s 68 1988',
12795         'STATE 4 m 68 1989',
12796         'STATE 5 y 1991 1990',
12797         'STATE 2 o 68 1992',
12798         'STATE 3 p 230 1993',
12799         'STATE 2 g 29 1994',
12800         'STATE 4 s 1996 1995',
12801         'STATE 5 r 1998 1997',
12802         'STATE 4 j 2000 1999',
12803         'STATE 3 m 2002 2001',
12804         'STATE 3 b 42 2003',
12805         'STATE 5 h 2005 2004',
12806         'STATE 4 g 42 100',
12807         'STATE 4 p 230 100',
12808         'STATE 3 l 42 1674',
12809         'STATE 3 h 100 2006',
12810         'STATE 6 e 230 100',
12811         'STATE 5 v 562 2007',
12812         'STATE 6 # 100 29',
12813         'STATE 4 n 2009 2008',
12814         'STATE 4 m 68 2010',
12815         'STATE 6 t 2012 2011',
12816         'STATE 4 s 1870 68',
12817         'STATE 3 h 100 2013',
12818         'STATE 4 b 230 2014',
12819         'STATE 4 v 100 230',
12820         'STATE 3 k 100 2015',
12821         'STATE 3 h 42 2016',
12822         'STATE 5 s 2018 2017',
12823         'STATE 6 a 100 2019',
12824         'STATE 3 t 82 2020',
12825         'STATE 6 h 100 2021',
12826         'STATE 3 g 100 2022',
12827         'STATE 4 f 29 2023',
12828         'STATE 2 a 68 2024',
12829         'STATE 3 f 100 68',
12830         'STATE 4 t 68 2025',
12831         'STATE 6 r 68 2026',
12832         'STATE 4 z 68 100',
12833         'STATE 4 s 2028 2027',
12834         'STATE 3 d 100 2029',
12835         'STATE 1 o 68 2030',
12836         'STATE 2 a 230 68',
12837         'STATE 4 s 42 2031',
12838         'STATE 4 l 68 100',
12839         'STATE 2 s 42 2032',
12840         'STATE 2 # 2034 2033',
12841         'STATE 4 d 68 2035',
12842         'STATE 4 n 2037 2036',
12843         'STATE 4 n 68 29',
12844         'STATE 3 s 42 2038',
12845         'STATE 4 c 68 2039',
12846         'STATE 2 c 68 2040',
12847         'STATE 4 x 100 2041',
12848         'STATE 3 s 68 2042',
12849         'STATE 3 s 42 2043',
12850         'STATE 1 a 2045 2044',
12851         'STATE 5 b 63 2046',
12852         'STATE 3 t 2048 2047',
12853         'STATE 3 n 68 2049',
12854         'STATE 1 p 68 2050',
12855         'STATE 3 b 68 2051',
12856         'STATE 2 c 29 2052',
12857         'STATE 3 h 2053 29',
12858         'STATE 2 h 28 2054',
12859         'STATE 1 a 230 28',
12860         'STATE 3 k 28 2055',
12861         'STATE 3 b 29 2056',
12862         'STATE 6 n 28 2057',
12863         'STATE 3 k 29 2058',
12864         'STATE 3 t 29 2059',
12865         'STATE 3 c 29 2060',
12866         'STATE 5 b 29 2061',
12867         'STATE 5 u 2063 2062',
12868         'STATE 2 o 68 2064',
12869         'STATE 6 # 2065 68',
12870         'STATE 4 s 2067 2066',
12871         'STATE 1 p 42 2068',
12872         'STATE 2 m 100 2069',
12873         'STATE 1 i 29 2070',
12874         'STATE 2 r 29 230',
12875         'STATE 3 c 100 2071',
12876         'STATE 1 d 68 100',
12877         'STATE 6 a 2073 2072',
12878         'STATE 4 f 230 2074',
12879         'STATE 3 k 230 2075',
12880         'STATE 5 d 2077 2076',
12881         'STATE 2 t 100 68',
12882         'STATE 3 l 68 100',
12883         'STATE 3 l 2078 100',
12884         'STATE 3 d 68 2079',
12885         'STATE 2 u 68 2080',
12886         'STATE 1 o 68 1986',
12887         'STATE 2 b 100 68',
12888         'STATE 1 s 100 1854',
12889         'STATE 4 h 29 2081',
12890         'STATE 4 g 68 2082',
12891         'STATE 5 y 42 2083',
12892         'STATE 4 c 100 2084',
12893         'STATE 4 c 68 2085',
12894         'STATE 6 t 100 2086',
12895         'STATE 6 e 100 230',
12896         'STATE 5 b 100 2087',
12897         'STATE 5 b 100 562',
12898         'STATE 4 f 68 1285',
12899         'STATE 6 e 2089 2088',
12900         'STATE 1 a 100 1403',
12901         'STATE 2 i 68 100',
12902         'STATE 3 w 82 2090',
12903         'STATE 2 c 68 82',
12904         'STATE 4 n 68 2091',
12905         'STATE 6 e 2093 2092',
12906         'STATE 6 # 42 100',
12907         'STATE 4 v 2095 2094',
12908         'STATE 3 m 68 2096',
12909         'STATE 6 # 29 230',
12910         'STATE 3 r 68 2097',
12911         'STATE 3 n 230 100',
12912         'STATE 3 m 2099 2098',
12913         'STATE 4 t 2101 2100',
12914         'STATE 3 m 2103 2102',
12915         'PHONE ay1',
12916         'STATE 4 k 68 2104',
12917         'STATE 4 t 68 1917',
12918         'STATE 4 d 42 100',
12919         'STATE 5 r 1786 2105',
12920         'STATE 3 f 29 2106',
12921         'STATE 6 o 2108 2107',
12922         'STATE 5 c 100 2109',
12923         'STATE 3 n 2028 2110',
12924         'STATE 3 j 68 100',
12925         'STATE 4 p 230 2111',
12926         'STATE 4 c 2113 2112',
12927         'STATE 4 b 29 1838',
12928         'STATE 4 h 29 2114',
12929         'STATE 4 s 68 230',
12930         'STATE 3 b 68 100',
12931         'STATE 3 m 68 2115',
12932         'STATE 5 z 2117 2116',
12933         'STATE 3 f 82 2020',
12934         'STATE 6 u 2119 2118',
12935         'STATE 3 b 82 100',
12936         'STATE 3 b 100 82',
12937         'STATE 3 t 82 100',
12938         'STATE 5 h 29 2120',
12939         'STATE 4 v 230 2121',
12940         'STATE 3 t 1285 2122',
12941         'STATE 2 s 230 100',
12942         'STATE 3 f 68 2123',
12943         'STATE 6 l 230 68',
12944         'STATE 2 # 2125 2124',
12945         'STATE 2 a 68 2126',
12946         'STATE 3 s 2128 2127',
12947         'STATE 2 b 42 2129',
12948         'STATE 1 # 42 2130',
12949         'STATE 6 l 42 2131',
12950         'STATE 6 m 42 2132',
12951         'STATE 2 n 68 2133',
12952         'STATE 2 m 100 230',
12953         'STATE 4 v 230 2134',
12954         'STATE 6 r 29 68',
12955         'STATE 2 a 2136 2135',
12956         'STATE 3 c 2138 2137',
12957         'STATE 3 n 42 2139',
12958         'STATE 3 r 42 2140',
12959         'STATE 2 i 247 68',
12960         'STATE 2 n 247 2141',
12961         'STATE 6 c 63 2142',
12962         'STATE 2 a 2144 2143',
12963         'STATE 4 d 68 2145',
12964         'STATE 2 i 68 2146',
12965         'STATE 1 h 68 2147',
12966         'STATE 1 r 68 2148',
12967         'STATE 3 n 2150 2149',
12968         'STATE 1 e 230 2151',
12969         'STATE 3 y 29 2152',
12970         'STATE 1 r 2154 2153',
12971         'STATE 3 h 2156 2155',
12972         'STATE 3 t 28 29',
12973         'STATE 3 m 2157 29',
12974         'STATE 3 f 29 2158',
12975         'STATE 5 g 230 29',
12976         'STATE 2 # 29 2159',
12977         'STATE 1 s 2161 2160',
12978         'STATE 6 l 2163 2162',
12979         'STATE 5 h 29 2164',
12980         'STATE 4 d 42 68',
12981         'STATE 6 e 68 2165',
12982         'STATE 6 # 2167 2166',
12983         'STATE 4 s 29 2168',
12984         'STATE 4 s 68 100',
12985         'STATE 2 h 29 2169',
12986         'STATE 2 c 100 2170',
12987         'STATE 5 u 1735 2171',
12988         'STATE 5 c 230 100',
12989         'STATE 1 s 29 2172',
12990         'STATE 6 s 29 68',
12991         'STATE 2 i 100 2173',
12992         'STATE 3 l 2175 2174',
12993         'STATE 6 h 68 29',
12994         'STATE 1 m 2176 68',
12995         'STATE 3 n 68 2177',
12996         'STATE 4 p 2179 2178',
12997         'STATE 4 b 68 2180',
12998         'STATE 6 h 100 2181',
12999         'STATE 6 a 2183 2182',
13000         'STATE 6 a 29 2184',
13001         'STATE 6 p 68 2185',
13002         'STATE 5 c 100 562',
13003         'STATE 6 i 100 2186',
13004         'STATE 1 0 100 2187',
13005         'STATE 3 n 68 2188',
13006         'STATE 4 l 68 1493',
13007         'STATE 5 r 2190 2189',
13008         'STATE 2 i 68 2191',
13009         'STATE 6 s 42 2192',
13010         'STATE 2 f 42 68',
13011         'STATE 2 g 2194 2193',
13012         'STATE 4 n 2195 68',
13013         'STATE 6 u 2197 2196',
13014         'STATE 4 c 2199 2198',
13015         'STATE 4 v 100 2200',
13016         'STATE 3 m 42 2201',
13017         'STATE 3 c 2203 2202',
13018         'STATE 4 c 2205 2204',
13019         'STATE 3 y 29 2206',
13020         'STATE 4 s 2208 2207',
13021         'STATE 4 c 2210 2209',
13022         'STATE 3 m 2212 2211',
13023         'STATE 5 k 100 2213',
13024         'STATE 5 m 562 2214',
13025         'STATE 6 t 100 2215',
13026         'STATE 3 m 42 2216',
13027         'STATE 3 y 29 2217',
13028         'STATE 3 m 68 230',
13029         'STATE 4 z 2219 2218',
13030         'STATE 4 g 42 230',
13031         'STATE 5 h 562 100',
13032         'STATE 3 s 82 230',
13033         'STATE 3 b 2221 2220',
13034         'STATE 3 h 68 2222',
13035         'STATE 4 m 29 2223',
13036         'STATE 2 o 68 2224',
13037         'STATE 1 e 68 2225',
13038         'STATE 3 m 68 2226',
13039         'STATE 3 c 100 2227',
13040         'STATE 4 n 100 2228',
13041         'STATE 4 n 100 2229',
13042         'STATE 4 b 100 2230',
13043         'STATE 4 v 230 68',
13044         'STATE 4 m 68 193',
13045         'STATE 6 i 28 42',
13046         'STATE 3 r 42 2231',
13047         'STATE 6 g 100 2232',
13048         'STATE 2 a 68 2233',
13049         'STATE 1 r 29 2234',
13050         'STATE 4 n 100 2235',
13051         'STATE 3 m 29 68',
13052         'STATE 3 t 2237 2236',
13053         'STATE 6 g 100 2238',
13054         'STATE 3 f 42 100',
13055         'STATE 4 v 42 2239',
13056         'STATE 2 c 247 2240',
13057         'STATE 3 k 82 2241',
13058         'STATE 1 a 2243 2242',
13059         'STATE 3 b 230 1423',
13060         'STATE 4 g 100 2244',
13061         'STATE 1 i 68 2245',
13062         'STATE 1 k 68 2246',
13063         'STATE 2 u 68 2247',
13064         'STATE 1 a 2249 2248',
13065         'STATE 5 d 909 230',
13066         'STATE 2 c 230 2250',
13067         'STATE 3 f 230 2251',
13068         'STATE 1 b 29 2252',
13069         'STATE 2 e 29 28',
13070         'STATE 2 c 29 230',
13071         'STATE 1 o 230 2253',
13072         'STATE 5 s 230 29',
13073         'STATE 5 s 29 2254',
13074         'STATE 5 n 230 29',
13075         'STATE 6 # 2256 2255',
13076         'STATE 3 i 247 2257',
13077         'STATE 4 t 2259 2258',
13078         'STATE 4 c 100 2260',
13079         'STATE 4 t 29 154',
13080         'STATE 4 g 2262 2261',
13081         'STATE 6 e 100 2263',
13082         'STATE 5 h 247 100',
13083         'STATE 3 r 29 100',
13084         'STATE 6 # 905 29',
13085         'STATE 6 i 100 2264',
13086         'STATE 2 n 100 2265',
13087         'STATE 4 d 2267 2266',
13088         'STATE 2 o 2269 2268',
13089         'STATE 2 g 562 2270',
13090         'STATE 2 e 68 2271',
13091         'STATE 2 b 68 100',
13092         'STATE 2 i 68 782',
13093         'STATE 5 t 2273 2272',
13094         'STATE 5 p 2274 100',
13095         'STATE 5 c 68 2275',
13096         'STATE 6 o 68 2276',
13097         'STATE 4 d 68 2277',
13098         'STATE 4 t 100 68',
13099         'STATE 4 q 100 1532',
13100         'STATE 6 d 100 2278',
13101         'STATE 6 g 100 82',
13102         'STATE 3 v 68 2279',
13103         'STATE 1 a 68 2280',
13104         'STATE 3 h 2282 2281',
13105         'STATE 4 g 42 2283',
13106         'STATE 5 l 2285 2284',
13107         'STATE 4 t 2287 2286',
13108         'STATE 4 n 2289 2288',
13109         'STATE 4 n 230 100',
13110         'STATE 5 d 68 29',
13111         'STATE 6 o 2291 2290',
13112         'STATE 5 q 2293 2292',
13113         'STATE 5 h 100 2294',
13114         'STATE 5 h 2296 2295',
13115         'STATE 3 l 230 2297',
13116         'STATE 3 p 1204 100',
13117         'STATE 5 k 2299 2298',
13118         'STATE 4 m 230 2300',
13119         'STATE 4 s 100 2301',
13120         'STATE 5 c 100 2302',
13121         'STATE 3 k 29 2303',
13122         'STATE 3 m 2304 100',
13123         'STATE 5 s 100 2305',
13124         'STATE 4 t 2306 100',
13125         'STATE 3 b 29 100',
13126         'STATE 3 l 100 2307',
13127         'STATE 5 c 2308 100',
13128         'STATE 3 p 230 100',
13129         'STATE 6 a 100 2309',
13130         'STATE 6 d 230 2310',
13131         'STATE 4 s 100 68',
13132         'STATE 6 g 100 2311',
13133         'STATE 3 s 2313 2312',
13134         'STATE 3 n 230 68',
13135         'STATE 6 s 82 2314',
13136         'STATE 6 o 68 2315',
13137         'STATE 3 g 230 100',
13138         'STATE 6 o 82 2316',
13139         'STATE 6 r 100 2317',
13140         'STATE 2 u 68 2318',
13141         'STATE 4 m 2320 2319',
13142         'STATE 4 g 100 2321',
13143         'STATE 3 c 100 2322',
13144         'STATE 4 c 68 596',
13145         'STATE 4 l 100 2323',
13146         'STATE 5 t 42 2324',
13147         'STATE 2 c 100 2325',
13148         'STATE 2 o 68 2326',
13149         'STATE 2 t 68 2327',
13150         'STATE 3 l 2287 29',
13151         'STATE 3 l 2329 2328',
13152         'STATE 6 r 2330 100',
13153         'STATE 4 m 100 2331',
13154         'STATE 3 t 42 2332',
13155         'STATE 6 # 247 68',
13156         'STATE 3 l 2334 2333',
13157         'STATE 4 f 68 2335',
13158         'STATE 4 d 29 2336',
13159         'STATE 4 t 100 562',
13160         'STATE 2 s 562 2337',
13161         'STATE 1 r 68 2338',
13162         'STATE 3 d 68 2339',
13163         'STATE 6 h 29 2340',
13164         'STATE 2 n 28 29',
13165         'STATE 1 r 230 29',
13166         'STATE 3 b 29 2341',
13167         'STATE 1 h 28 2342',
13168         'STATE 2 n 29 2343',
13169         'STATE 3 m 29 2344',
13170         'STATE 4 p 2346 2345',
13171         'STATE 4 h 68 2347',
13172         'STATE 2 q 29 2348',
13173         'STATE 6 a 29 2349',
13174         'STATE 2 n 100 2350',
13175         'STATE 1 n 100 230',
13176         'STATE 4 z 29 2351',
13177         'STATE 1 p 68 2352',
13178         'STATE 6 o 29 1722',
13179         'STATE 2 s 2354 2353',
13180         'STATE 3 v 68 2355',
13181         'STATE 1 m 2357 2356',
13182         'STATE 3 r 68 230',
13183         'STATE 6 r 68 2358',
13184         'STATE 1 i 29 2359',
13185         'STATE 6 t 68 2360',
13186         'STATE 6 i 100 2361',
13187         'STATE 6 e 2363 2362',
13188         'STATE 4 t 2364 100',
13189         'STATE 6 o 68 2365',
13190         'STATE 4 p 68 2366',
13191         'STATE 5 c 2365 2367',
13192         'STATE 6 e 100 2368',
13193         'STATE 4 p 68 2369',
13194         'STATE 2 c 100 82',
13195         'STATE 3 t 68 82',
13196         'STATE 3 y 2371 2370',
13197         'STATE 5 u 29 2372',
13198         'STATE 4 h 29 100',
13199         'STATE 3 h 2374 2373',
13200         'STATE 4 b 42 2375',
13201         'STATE 3 r 2377 2376',
13202         'STATE 2 p 68 100',
13203         'STATE 4 c 42 2378',
13204         'STATE 2 b 100 2379',
13205         'STATE 6 i 2381 2380',
13206         'STATE 5 k 2299 2382',
13207         'STATE 5 s 100 2383',
13208         'STATE 3 p 230 2384',
13209         'STATE 4 z 230 2385',
13210         'STATE 5 k 100 68',
13211         'STATE 6 i 247 68',
13212         'STATE 3 g 230 2386',
13213         'STATE 5 h 2388 2387',
13214         'STATE 4 c 100 29',
13215         'STATE 5 c 562 2389',
13216         'STATE 4 m 29 2390',
13217         'STATE 5 h 100 68',
13218         'STATE 3 n 100 2391',
13219         'STATE 4 c 68 2392',
13220         'STATE 3 h 42 2393',
13221         'STATE 3 m 100 2394',
13222         'STATE 3 c 2396 2395',
13223         'STATE 6 i 230 100',
13224         'STATE 6 e 562 2397',
13225         'STATE 4 v 230 2398',
13226         'STATE 6 d 100 2399',
13227         'STATE 3 m 68 2400',
13228         'STATE 4 m 100 230',
13229         'STATE 6 m 82 2401',
13230         'STATE 6 i 100 82',
13231         'STATE 6 e 82 29',
13232         'STATE 1 m 68 100',
13233         'STATE 4 m 29 2402',
13234         'STATE 4 l 2404 2403',
13235         'STATE 3 c 68 2405',
13236         'STATE 2 g 100 2406',
13237         'STATE 4 v 100 273',
13238         'STATE 3 l 2408 2407',
13239         'STATE 6 i 42 2409',
13240         'STATE 6 a 2411 2410',
13241         'STATE 4 b 230 68',
13242         'STATE 2 e 68 2412',
13243         'STATE 4 f 42 2413',
13244         'STATE 6 r 2330 2414',
13245         'STATE 4 v 230 42',
13246         'STATE 6 b 42 2415',
13247         'STATE 1 h 42 2416',
13248         'STATE 5 s 82 2417',
13249         'STATE 5 d 82 63',
13250         'STATE 4 b 100 2418',
13251         'STATE 4 t 562 2419',
13252         'STATE 1 a 562 68',
13253         'STATE 2 o 562 68',
13254         'STATE 1 l 68 2420',
13255         'STATE 3 i 29 2421',
13256         'STATE 3 m 2423 2422',
13257         'STATE 2 r 2425 2424',
13258         'STATE 1 i 230 2426',
13259         'STATE 3 b 2427 29',
13260         'STATE 5 r 2429 2428',
13261         'STATE 6 i 100 2430',
13262         'STATE 5 z 1669 2431',
13263         'STATE 3 r 100 2432',
13264         'STATE 6 # 29 558',
13265         'STATE 3 r 68 2433',
13266         'STATE 1 p 68 2434',
13267         'STATE 6 a 29 230',
13268         'STATE 2 d 100 2435',
13269         'STATE 3 t 562 100',
13270         'STATE 6 u 100 2436',
13271         'STATE 4 z 100 68',
13272         'STATE 2 c 100 896',
13273         'STATE 3 l 2438 2437',
13274         'STATE 6 o 29 2439',
13275         'STATE 1 a 100 2440',
13276         'STATE 6 e 1854 29',
13277         'STATE 4 c 2442 2441',
13278         'STATE 5 c 562 2443',
13279         'STATE 6 i 100 2444',
13280         'STATE 6 e 68 100',
13281         'STATE 4 t 68 2445',
13282         'STATE 6 a 100 2446',
13283         'STATE 6 l 562 100',
13284         'STATE 4 h 68 2447',
13285         'STATE 2 o 1825 2448',
13286         'STATE 5 t 68 100',
13287         'STATE 2 b 29 2449',
13288         'STATE 5 c 2451 2450',
13289         'STATE 5 g 42 2452',
13290         'STATE 3 h 100 2453',
13291         'STATE 3 l 100 2454',
13292         'STATE 6 n 100 2455',
13293         'STATE 6 n 42 2456',
13294         'STATE 2 s 100 273',
13295         'STATE 6 r 2458 2457',
13296         'STATE 5 t 2460 2459',
13297         'STATE 5 h 100 2461',
13298         'STATE 3 t 230 2462',
13299         'STATE 4 c 100 562',
13300         'STATE 6 r 562 2463',
13301         'STATE 4 p 100 2464',
13302         'STATE 5 r 2466 2465',
13303         'STATE 4 s 100 2467',
13304         'STATE 5 h 100 2468',
13305         'STATE 4 t 100 2469',
13306         'STATE 6 n 68 2470',
13307         'STATE 4 g 100 2471',
13308         'STATE 3 t 42 100',
13309         'STATE 3 g 100 756',
13310         'STATE 6 a 100 2472',
13311         'STATE 5 c 1980 100',
13312         'STATE 6 o 2473 100',
13313         'STATE 6 v 230 2474',
13314         'STATE 4 p 68 2475',
13315         'STATE 3 b 68 2476',
13316         'STATE 3 h 2477 100',
13317         'STATE 4 n 2478 1425',
13318         'STATE 6 g 100 2479',
13319         'STATE 6 g 68 2480',
13320         'STATE 2 # 68 2481',
13321         'STATE 4 n 100 256',
13322         'STATE 3 f 42 2482',
13323         'STATE 4 m 100 68',
13324         'STATE 6 o 42 28',
13325         'STATE 6 y 2484 2483',
13326         'STATE 3 r 42 68',
13327         'STATE 2 s 68 2485',
13328         'STATE 6 n 2487 2486',
13329         'STATE 4 t 42 68',
13330         'STATE 4 v 42 2488',
13331         'STATE 1 c 42 2489',
13332         'STATE 3 m 82 2490',
13333         'STATE 2 i 562 2491',
13334         'STATE 3 i 100 2492',
13335         'STATE 2 e 68 2493',
13336         'STATE 1 r 29 2494',
13337         'STATE 1 l 28 2495',
13338         'STATE 1 a 29 2496',
13339         'STATE 1 o 28 2497',
13340         'STATE 3 g 28 29',
13341         'STATE 2 r 230 29',
13342         'STATE 5 b 230 29',
13343         'STATE 5 h 2499 2498',
13344         'STATE 3 p 42 2500',
13345         'STATE 5 s 100 2501',
13346         'STATE 4 s 2503 2502',
13347         'STATE 3 h 100 2504',
13348         'STATE 3 l 42 68',
13349         'STATE 4 k 562 2505',
13350         'STATE 1 e 100 2506',
13351         'STATE 6 i 100 2507',
13352         'STATE 5 n 1207 2508',
13353         'STATE 6 e 2509 100',
13354         'STATE 5 n 100 29',
13355         'STATE 3 s 29 2510',
13356         'STATE 4 z 230 2511',
13357         'STATE 5 k 2513 2512',
13358         'STATE 5 v 100 2514',
13359         'STATE 6 e 68 2515',
13360         'STATE 4 d 68 100',
13361         'STATE 6 u 68 2516',
13362         'STATE 4 d 100 2517',
13363         'STATE 4 h 2519 2518',
13364         'STATE 4 t 100 2520',
13365         'STATE 2 o 68 2521',
13366         'STATE 2 f 230 100',
13367         'STATE 5 b 42 2069',
13368         'STATE 2 b 100 2522',
13369         'STATE 2 s 100 2523',
13370         'STATE 2 g 42 29',
13371         'STATE 6 s 29 2524',
13372         'STATE 5 z 2526 2525',
13373         'STATE 5 t 100 2527',
13374         'STATE 5 h 100 2528',
13375         'STATE 4 s 100 2529',
13376         'STATE 4 b 68 2530',
13377         'STATE 3 h 100 2213',
13378         'STATE 6 u 2532 2531',
13379         'STATE 3 f 100 2533',
13380         'STATE 4 b 100 2534',
13381         'STATE 4 g 42 2535',
13382         'STATE 4 t 100 2536',
13383         'STATE 5 t 2538 2537',
13384         'STATE 5 n 100 2539',
13385         'STATE 4 b 1416 2540',
13386         'STATE 5 z 230 100',
13387         'STATE 3 b 100 2541',
13388         'STATE 5 h 100 562',
13389         'STATE 4 g 230 2542',
13390         'STATE 3 j 68 2543',
13391         'STATE 4 v 2545 2544',
13392         'STATE 6 o 100 2315',
13393         'STATE 2 a 68 2546',
13394         'STATE 4 p 100 2547',
13395         'STATE 6 l 68 2548',
13396         'STATE 6 r 100 68',
13397         'STATE 4 v 100 2549',
13398         'STATE 4 n 68 2550',
13399         'STATE 3 l 68 42',
13400         'STATE 3 h 42 2551',
13401         'STATE 4 b 42 2552',
13402         'STATE 3 g 42 2553',
13403         'STATE 4 s 42 2554',
13404         'STATE 2 l 68 2555',
13405         'STATE 5 p 82 63',
13406         'STATE 3 u 562 2556',
13407         'STATE 4 c 562 100',
13408         'STATE 3 k 68 2557',
13409         'STATE 1 b 230 2558',
13410         'STATE 1 u 29 2559',
13411         'STATE 2 a 29 2560',
13412         'STATE 3 u 29 2561',
13413         'STATE 6 e 2563 2562',
13414         'STATE 3 t 100 2564',
13415         'STATE 6 e 2566 2565',
13416         'STATE 6 s 100 2567',
13417         'STATE 5 p 2569 2568',
13418         'STATE 5 s 2570 100',
13419         'STATE 4 s 100 29',
13420         'STATE 4 d 29 2571',
13421         'STATE 2 t 100 2572',
13422         'STATE 3 c 29 2573',
13423         'STATE 3 s 29 2574',
13424         'STATE 2 p 100 29',
13425         'STATE 1 d 100 2575',
13426         'STATE 5 j 68 2576',
13427         'STATE 6 i 100 2577',
13428         'STATE 6 n 562 100',
13429         'STATE 4 f 68 2578',
13430         'STATE 6 a 68 100',
13431         'STATE 6 i 2579 100',
13432         'STATE 6 n 230 2580',
13433         'STATE 2 i 2582 2581',
13434         'STATE 5 l 29 100',
13435         'STATE 5 p 1625 2583',
13436         'STATE 5 g 2585 2584',
13437         'STATE 2 s 1674 2586',
13438         'STATE 4 p 100 2587',
13439         'STATE 4 v 68 100',
13440         'STATE 5 h 2588 100',
13441         'STATE 4 c 68 100',
13442         'STATE 5 b 100 2589',
13443         'STATE 5 s 2591 2590',
13444         'STATE 4 t 2592 100',
13445         'STATE 4 s 100 2593',
13446         'STATE 6 o 2073 100',
13447         'STATE 5 s 230 100',
13448         'STATE 4 c 100 2594',
13449         'STATE 3 h 100 2595',
13450         'STATE 3 l 230 100',
13451         'STATE 4 p 562 100',
13452         'STATE 5 s 100 2596',
13453         'STATE 4 s 230 100',
13454         'STATE 4 g 100 230',
13455         'STATE 3 r 230 2597',
13456         'STATE 6 u 100 2598',
13457         'STATE 4 f 29 2599',
13458         'STATE 3 r 29 2600',
13459         'STATE 4 b 230 2601',
13460         'STATE 3 n 100 230',
13461         'STATE 2 i 68 29',
13462         'STATE 4 c 1416 2602',
13463         'STATE 6 p 100 2603',
13464         'STATE 4 m 42 2604',
13465         'STATE 6 n 2605 68',
13466         'STATE 1 a 68 42',
13467         'STATE 6 c 100 2606',
13468         'STATE 4 d 42 2607',
13469         'STATE 6 n 100 1353',
13470         'STATE 2 r 68 2608',
13471         'STATE 3 h 100 2609',
13472         'STATE 2 h 68 2610',
13473         'STATE 2 n 230 2611',
13474         'STATE 1 k 28 2612',
13475         'STATE 1 d 29 230',
13476         'STATE 3 t 28 2613',
13477         'STATE 6 o 2615 2614',
13478         'STATE 4 g 2617 2616',
13479         'STATE 3 f 29 2618',
13480         'STATE 6 i 2620 2619',
13481         'STATE 2 i 68 2621',
13482         'STATE 5 h 68 2622',
13483         'STATE 4 p 100 2623',
13484         'STATE 3 k 2624 100',
13485         'STATE 2 g 100 2625',
13486         'STATE 5 u 68 2626',
13487         'STATE 3 r 68 2627',
13488         'STATE 6 o 2317 68',
13489         'STATE 1 u 68 2628',
13490         'STATE 1 m 100 2629',
13491         'STATE 4 t 100 2630',
13492         'STATE 6 o 68 2631',
13493         'STATE 5 n 100 2632',
13494         'STATE 5 p 100 68',
13495         'STATE 6 r 100 2216',
13496         'STATE 6 i 2634 2633',
13497         'STATE 5 c 100 2635',
13498         'STATE 2 s 100 2636',
13499         'STATE 5 u 1891 100',
13500         'STATE 4 g 100 2637',
13501         'STATE 2 c 42 100',
13502         'STATE 3 h 100 68',
13503         'STATE 4 c 2638 100',
13504         'STATE 4 t 100 2639',
13505         'STATE 5 l 100 2640',
13506         'STATE 4 s 100 562',
13507         'STATE 3 b 230 100',
13508         'STATE 3 k 29 2641',
13509         'STATE 4 m 100 2642',
13510         'STATE 5 z 230 2643',
13511         'STATE 5 r 230 100',
13512         'STATE 3 l 230 2644',
13513         'STATE 6 i 1996 100',
13514         'STATE 3 l 100 2645',
13515         'STATE 4 g 100 2646',
13516         'STATE 3 t 100 230',
13517         'STATE 3 p 68 2647',
13518         'STATE 3 v 100 2648',
13519         'STATE 4 p 230 42',
13520         'STATE 4 t 100 2649',
13521         'STATE 3 p 2651 2650',
13522         'STATE 3 p 100 1825',
13523         'STATE 1 e 42 2652',
13524         'STATE 2 t 100 2653',
13525         'STATE 1 e 68 2654',
13526         'STATE 5 s 29 2655',
13527         'STATE 3 t 28 2656',
13528         'STATE 1 a 28 2657',
13529         'STATE 6 h 100 2658',
13530         'STATE 5 n 230 2659',
13531         'STATE 3 m 68 2660',
13532         'STATE 1 r 100 42',
13533         'STATE 4 t 2662 2661',
13534         'STATE 3 l 29 2663',
13535         'STATE 3 i 68 100',
13536         'STATE 3 s 68 42',
13537         'STATE 3 s 68 100',
13538         'STATE 3 v 562 2664',
13539         'STATE 2 n 562 100',
13540         'STATE 1 a 68 100',
13541         'STATE 5 h 68 2665',
13542         'STATE 1 o 100 2666',
13543         'STATE 6 e 2668 2667',
13544         'STATE 6 r 2670 2669',
13545         'STATE 5 f 2672 2671',
13546         'STATE 6 u 68 100',
13547         'STATE 4 d 2673 100',
13548         'STATE 6 o 2675 2674',
13549         'STATE 3 r 2676 100',
13550         'STATE 3 n 1423 2677',
13551         'STATE 5 t 2678 100',
13552         'STATE 3 r 42 100',
13553         'STATE 3 b 29 2679',
13554         'STATE 4 f 100 2680',
13555         'STATE 3 c 2073 2681',
13556         'STATE 5 b 2683 2682',
13557         'STATE 6 i 100 2684',
13558         'STATE 5 l 100 2685',
13559         'STATE 4 c 100 2686',
13560         'STATE 6 m 68 2687',
13561         'STATE 6 y 2689 2688',
13562         'STATE 4 t 100 2690',
13563         'STATE 6 b 100 230',
13564         'STATE 2 t 68 2691',
13565         'STATE 3 n 2693 2692',
13566         'STATE 6 r 68 2694',
13567         'STATE 2 n 68 42',
13568         'STATE 1 d 68 2695',
13569         'STATE 1 m 100 2696',
13570         'STATE 6 o 29 2697',
13571         'STATE 1 o 29 2698',
13572         'STATE 1 i 28 2699',
13573         'STATE 5 k 2701 2700',
13574         'STATE 5 z 29 2702',
13575         'STATE 3 s 68 2703',
13576         'STATE 2 h 100 2704',
13577         'STATE 2 m 68 2705',
13578         'STATE 3 r 28 68',
13579         'STATE 2 t 100 2706',
13580         'STATE 6 # 68 2707',
13581         'STATE 6 # 100 68',
13582         'STATE 5 t 2709 2708',
13583         'STATE 5 t 29 100',
13584         'STATE 3 h 100 2710',
13585         'STATE 3 x 100 29',
13586         'STATE 5 s 2712 2711',
13587         'STATE 6 o 68 2713',
13588         'STATE 5 d 68 100',
13589         'STATE 6 a 2715 2714',
13590         'STATE 3 l 2717 2716',
13591         'STATE 4 n 2719 2718',
13592         'STATE 4 n 29 230',
13593         'STATE 4 n 100 562',
13594         'STATE 6 t 29 100',
13595         'STATE 4 m 100 2299',
13596         'STATE 3 z 230 2720',
13597         'STATE 3 c 100 2721',
13598         'STATE 3 r 68 100',
13599         'STATE 3 m 100 2722',
13600         'STATE 4 m 100 2723',
13601         'STATE 6 l 230 2724',
13602         'STATE 6 u 68 2725',
13603         'STATE 3 t 100 2726',
13604         'STATE 3 m 29 100',
13605         'STATE 3 c 230 2727',
13606         'STATE 3 v 68 2728',
13607         'STATE 4 t 42 2729',
13608         'STATE 6 r 42 68',
13609         'STATE 4 l 42 230',
13610         'STATE 3 v 68 2730',
13611         'STATE 3 c 68 2731',
13612         'STATE 3 c 29 2732',
13613         'STATE 1 a 29 2733',
13614         'STATE 3 r 29 2734',
13615         'STATE 3 l 100 2735',
13616         'STATE 6 s 100 2736',
13617         'STATE 4 s 29 1860',
13618         'STATE 3 n 562 2737',
13619         'STATE 6 i 2739 2738',
13620         'STATE 3 n 68 2740',
13621         'STATE 5 h 2742 2741',
13622         'STATE 6 o 68 1722',
13623         'STATE 5 z 29 2743',
13624         'STATE 1 n 68 2744',
13625         'STATE 6 i 100 2745',
13626         'STATE 6 u 562 2746',
13627         'STATE 4 b 2747 100',
13628         'STATE 6 i 68 2748',
13629         'STATE 3 v 68 2749',
13630         'STATE 5 c 2194 2750',
13631         'STATE 5 k 100 2751',
13632         'STATE 5 b 562 100',
13633         'STATE 2 g 100 2752',
13634         'STATE 5 c 562 100',
13635         'STATE 3 v 100 2753',
13636         'STATE 3 t 2754 100',
13637         'STATE 6 o 68 29',
13638         'STATE 5 m 100 2755',
13639         'STATE 4 t 100 2756',
13640         'STATE 4 s 100 2757',
13641         'STATE 6 h 29 2758',
13642         'STATE 4 k 68 2759',
13643         'STATE 4 l 68 2760',
13644         'STATE 4 s 42 2761',
13645         'STATE 2 r 2763 2762',
13646         'STATE 3 s 68 2764',
13647         'STATE 2 e 230 29',
13648         'STATE 3 i 28 2765',
13649         'STATE 2 t 28 2766',
13650         'STATE 4 c 29 2767',
13651         'STATE 2 e 100 2768',
13652         'STATE 2 o 2216 2769',
13653         'STATE 4 c 2771 2770',
13654         'STATE 3 h 29 68',
13655         'STATE 2 o 100 2772',
13656         'STATE 2 l 2774 2773',
13657         'STATE 4 t 1287 68',
13658         'STATE 5 j 29 2295',
13659         'STATE 1 o 230 2775',
13660         'STATE 1 s 100 2776',
13661         'STATE 5 d 2778 2777',
13662         'STATE 6 t 68 1204',
13663         'STATE 6 l 68 100',
13664         'STATE 5 u 2779 100',
13665         'STATE 4 g 100 2780',
13666         'STATE 5 n 230 2781',
13667         'STATE 5 h 42 100',
13668         'STATE 5 c 2782 100',
13669         'STATE 5 p 100 562',
13670         'STATE 3 z 230 2783',
13671         'STATE 4 m 100 2784',
13672         'STATE 6 w 68 2785',
13673         'STATE 4 v 29 2786',
13674         'STATE 2 # 2788 2787',
13675         'STATE 4 c 42 2789',
13676         'STATE 4 v 42 2790',
13677         'STATE 2 u 562 2791',
13678         'STATE 1 e 100 1425',
13679         'STATE 3 t 68 2792',
13680         'STATE 1 m 28 2793',
13681         'STATE 2 i 28 2794',
13682         'STATE 1 i 100 2795',
13683         'STATE 2 u 29 2796',
13684         'STATE 3 h 2798 2797',
13685         'STATE 6 e 100 68',
13686         'STATE 2 e 29 2799',
13687         'STATE 2 e 100 68',
13688         'STATE 5 k 2801 2800',
13689         'STATE 4 m 68 2802',
13690         'STATE 2 r 100 2803',
13691         'STATE 6 o 100 2804',
13692         'STATE 6 a 2806 2805',
13693         'STATE 4 b 100 2807',
13694         'STATE 2 s 2601 100',
13695         'STATE 4 m 100 2808',
13696         'STATE 2 f 100 2809',
13697         'STATE 3 f 100 230',
13698         'STATE 3 p 2811 2810',
13699         'STATE 3 c 100 2812',
13700         'STATE 4 d 100 2813',
13701         'STATE 6 k 29 2814',
13702         'STATE 4 v 230 2815',
13703         'STATE 6 r 68 2816',
13704         'STATE 4 v 68 230',
13705         'STATE 3 d 42 2817',
13706         'STATE 2 c 100 2818',
13707         'STATE 2 a 68 2819',
13708         'STATE 2 o 29 2820',
13709         'STATE 3 b 28 2821',
13710         'STATE 5 p 100 2822',
13711         'STATE 4 s 29 2823',
13712         'STATE 4 s 2824 100',
13713         'STATE 5 m 100 68',
13714         'STATE 1 t 29 68',
13715         'STATE 1 o 100 2825',
13716         'STATE 1 o 68 2826',
13717         'STATE 5 s 562 68',
13718         'STATE 2 n 100 2827',
13719         'STATE 1 l 100 2828',
13720         'STATE 5 k 562 2829',
13721         'STATE 5 v 68 100',
13722         'STATE 6 i 68 100',
13723         'STATE 4 n 100 2830',
13724         'STATE 5 h 29 100',
13725         'STATE 5 t 2832 2831',
13726         'STATE 5 s 230 2538',
13727         'STATE 3 p 100 230',
13728         'STATE 3 s 100 2748',
13729         'STATE 4 z 68 2833',
13730         'STATE 4 b 68 2834',
13731         'STATE 4 n 68 1799',
13732         'STATE 6 a 42 2835',
13733         'STATE 3 b 100 2836',
13734         'STATE 1 a 68 2837',
13735         'STATE 2 a 29 2838',
13736         'STATE 3 n 28 2839',
13737         'STATE 2 s 100 2840',
13738         'STATE 1 a 100 2841',
13739         'STATE 3 p 100 2625',
13740         'STATE 2 s 100 2842',
13741         'STATE 3 s 68 2843',
13742         'STATE 6 a 100 2844',
13743         'STATE 3 m 2770 100',
13744         'STATE 6 i 562 2845',
13745         'STATE 2 f 100 2846',
13746         'STATE 3 k 100 2847',
13747         'STATE 4 t 230 100',
13748         'STATE 3 l 68 2848',
13749         'STATE 4 g 68 100',
13750         'STATE 6 r 2850 2849',
13751         'STATE 3 p 100 2851',
13752         'STATE 2 o 2852 68',
13753         'STATE 2 i 29 28',
13754         'STATE 2 s 28 2853',
13755         'STATE 1 m 100 2854',
13756         'STATE 2 c 100 29',
13757         'STATE 3 c 100 2855',
13758         'STATE 1 a 68 1853',
13759         'STATE 2 s 100 2856',
13760         'STATE 5 v 100 2857',
13761         'STATE 5 u 100 2858',
13762         'STATE 5 g 100 2859',
13763         'STATE 4 h 68 2860',
13764         'STATE 4 n 100 1552',
13765         'STATE 4 m 42 2861',
13766         'STATE 2 g 100 2862',
13767         'STATE 1 d 29 68',
13768         'STATE 3 g 28 2863',
13769         'STATE 5 m 2865 2864',
13770         'STATE 2 g 68 2866',
13771         'STATE 3 r 100 2867',
13772         'STATE 5 n 100 2868',
13773         'STATE 3 l 100 1227',
13774         'STATE 3 r 100 2869',
13775         'STATE 6 m 230 100',
13776         'STATE 4 d 100 2870',
13777         'STATE 2 e 2183 2871',
13778         'STATE 2 c 28 240',
13779         'STATE 5 b 100 2872',
13780         'STATE 6 a 100 562',
13781         'STATE 4 m 68 2873',
13782         'STATE 2 a 100 2874',
13783         'STATE 4 b 100 2875',
13784         'STATE 5 c 2876 100',
13785         'STATE 3 g 100 42',
13786         'STATE 4 p 100 2877',
13787         'STATE 2 l 2879 2878',
13788         'STATE 3 r 100 2880',
13789         'STATE 6 i 100 29',
13790         'STATE 5 m 562 68',
13791         'STATE 4 c 100 230',
13792         'STATE 3 i 100 2881',
13793         'STATE 5 s 2883 2882',
13794         'STATE 1 a 230 68',
13795         'STATE 5 s 100 68',
13796         'STATE 1 c 68 2884',
13797         'STATE 3 p 230 2885',
13798         'STATE 1 a 68 2886',
13799         'STATE 3 r 2183 2887',
13800         'STATE 4 g 100 2888',
13801         'STATE 4 s 2889 29',
13802         'STATE 4 d 562 2890',
13803         'STATE 4 d 100 2891',
13804         'STATE 2 o 29 100',
13805         'STATE 4 t 100 2892',
13806         'STATE 5 c 100 68',
13807         'STATE 3 m 562 2893',
13808         'STATE 2 s 562 100',
13809         'INDEX 2894 b',
13810         'STATE 4 b 2896 2895',
13811         'STATE 3 m 2898 2897',
13812         'STATE 1 c 2900 2899',
13813         'STATE 4 t 2902 2901',
13814         'STATE 4 # 2899 2903',
13815         'PHONE epsilon',
13816         'STATE 2 r 2904 2899',
13817         'PHONE b',
13818         'STATE 1 d 2899 2905',
13819         'STATE 4 s 2899 2906',
13820         'STATE 3 a 2899 2901',
13821         'STATE 2 d 2899 2901',
13822         'STATE 2 o 2908 2907',
13823         'STATE 1 l 2910 2909',
13824         'STATE 4 a 2901 2911',
13825         'STATE 2 u 2912 2901',
13826         'STATE 2 i 2913 2901',
13827         'STATE 1 b 2899 2914',
13828         'STATE 1 d 2899 2901',
13829         'STATE 4 e 2899 2901',
13830         'STATE 1 c 2913 2901',
13831         'INDEX 2915 c',
13832         'STATE 4 k 2917 2916',
13833         'STATE 4 h 2919 2918',
13834         'STATE 5 i 2921 2920',
13835         'STATE 4 e 2923 2922',
13836         'STATE 3 s 2925 2924',
13837         'PHONE epsilon',
13838         'STATE 6 # 2926 2920',
13839         'STATE 4 i 2928 2927',
13840         'STATE 3 s 2920 2929',
13841         'STATE 3 t 2931 2930',
13842         'STATE 2 t 2931 2932',
13843         'STATE 1 # 2920 2933',
13844         'STATE 4 c 2935 2934',
13845         'STATE 3 s 2937 2936',
13846         'STATE 3 m 2939 2938',
13847         'STATE 2 0 2941 2940',
13848         'PHONE ch',
13849         'STATE 5 o 2943 2942',
13850         'STATE 1 o 2945 2944',
13851         'STATE 4 y 2947 2946',
13852         'STATE 5 e 2949 2948',
13853         'STATE 5 a 2951 2950',
13854         'STATE 5 a 2953 2952',
13855         'STATE 3 x 2920 2954',
13856         'PHONE k',
13857         'STATE 3 n 2956 2955',
13858         'STATE 5 r 2939 2957',
13859         'STATE 5 i 2959 2958',
13860         'STATE 6 o 2939 2920',
13861         'STATE 1 a 2961 2960',
13862         'PHONE t-s',
13863         'STATE 4 z 2963 2962',
13864         'STATE 5 r 2939 2964',
13865         'STATE 5 i 2965 2920',
13866         'STATE 3 a 2939 2966',
13867         'STATE 3 c 2968 2967',
13868         'STATE 6 l 2970 2969',
13869         'STATE 1 p 2931 2920',
13870         'STATE 1 0 2920 2931',
13871         'STATE 5 k 2972 2971',
13872         'STATE 2 v 2931 2973',
13873         'STATE 5 o 2975 2974',
13874         'STATE 5 l 2939 2976',
13875         'STATE 6 d 2978 2977',
13876         'STATE 1 0 2920 2939',
13877         'STATE 3 i 2945 2979',
13878         'STATE 2 l 2920 2945',
13879         'STATE 4 g 2920 2980',
13880         'STATE 2 s 2920 2931',
13881         'PHONE s',
13882         'STATE 6 # 2920 2981',
13883         'STATE 2 s 2939 2920',
13884         'STATE 6 u 2983 2982',
13885         'STATE 5 # 2931 2984',
13886         'STATE 3 i 2970 2985',
13887         'PHONE sh',
13888         'STATE 6 n 2987 2986',
13889         'STATE 3 i 2931 2988',
13890         'STATE 2 e 2990 2989',
13891         'STATE 6 l 2992 2991',
13892         'STATE 6 r 2939 2993',
13893         'STATE 5 a 2995 2994',
13894         'STATE 1 0 2997 2996',
13895         'STATE 5 a 2920 2939',
13896         'STATE 1 r 2945 2998',
13897         'STATE 4 q 2920 2999',
13898         'STATE 6 d 2939 3000',
13899         'STATE 3 x 2920 3001',
13900         'STATE 5 o 2970 2964',
13901         'STATE 5 o 2931 3002',
13902         'STATE 6 t 3004 3003',
13903         'STATE 2 0 3006 3005',
13904         'STATE 5 a 2970 2964',
13905         'STATE 1 # 2931 3007',
13906         'STATE 5 e 3009 3008',
13907         'STATE 3 i 2939 3010',
13908         'STATE 5 e 2931 3011',
13909         'STATE 2 i 2931 2970',
13910         'STATE 6 # 2931 2939',
13911         'STATE 6 v 2931 3012',
13912         'STATE 6 r 2931 3013',
13913         'STATE 5 a 3014 2920',
13914         'STATE 6 m 3015 2920',
13915         'STATE 2 r 2945 3016',
13916         'STATE 3 k 2920 3017',
13917         'STATE 6 a 2920 3018',
13918         'STATE 6 n 3020 3019',
13919         'STATE 1 # 2964 3021',
13920         'STATE 3 c 2931 3022',
13921         'STATE 1 p 2970 2964',
13922         'STATE 5 o 2970 3023',
13923         'STATE 5 n 2964 3024',
13924         'STATE 1 o 2931 3025',
13925         'STATE 3 e 3027 3026',
13926         'STATE 6 r 3029 3028',
13927         'STATE 3 c 2939 3030',
13928         'STATE 1 s 2939 3031',
13929         'STATE 6 r 3033 3032',
13930         'STATE 6 u 2970 2931',
13931         'STATE 6 r 3034 2920',
13932         'STATE 5 e 2939 2920',
13933         'STATE 3 a 2945 3035',
13934         'STATE 3 n 3037 3036',
13935         'STATE 3 a 3038 2920',
13936         'STATE 3 m 2939 3039',
13937         'STATE 2 f 2970 3040',
13938         'STATE 1 v 2964 2931',
13939         'STATE 1 0 2931 3041',
13940         'STATE 6 c 3043 3042',
13941         'STATE 6 s 2964 3044',
13942         'STATE 1 a 2931 3045',
13943         'STATE 2 b 3047 3046',
13944         'STATE 2 i 3049 3048',
13945         'STATE 6 n 3051 3050',
13946         'STATE 3 a 2939 3052',
13947         'STATE 3 u 2939 3053',
13948         'STATE 5 # 2931 3054',
13949         'STATE 6 a 3056 3055',
13950         'STATE 5 o 2939 2931',
13951         'STATE 1 d 2931 2939',
13952         'STATE 3 o 2945 2920',
13953         'STATE 2 u 3058 3057',
13954         'STATE 1 r 3059 2939',
13955         'STATE 1 # 2939 2920',
13956         'STATE 5 e 3061 3060',
13957         'STATE 5 n 2964 3062',
13958         'STATE 3 n 2931 3063',
13959         'STATE 3 n 3065 3064',
13960         'STATE 2 a 2931 2964',
13961         'STATE 5 m 2964 3066',
13962         'STATE 3 a 2964 2931',
13963         'STATE 3 c 2939 3067',
13964         'STATE 5 # 2939 3068',
13965         'STATE 5 a 3070 3069',
13966         'STATE 5 # 2931 2939',
13967         'STATE 6 l 3072 3071',
13968         'STATE 3 r 2931 2939',
13969         'STATE 1 r 2931 3073',
13970         'STATE 3 r 3074 2931',
13971         'STATE 6 s 2931 3075',
13972         'STATE 6 m 3076 2931',
13973         'STATE 5 i 2939 2931',
13974         'STATE 4 # 2939 3077',
13975         'STATE 4 l 2920 2939',
13976         'STATE 5 i 2964 2939',
13977         'STATE 5 # 3079 3078',
13978         'STATE 6 # 2939 3080',
13979         'STATE 3 n 2931 2964',
13980         'STATE 6 n 2970 3081',
13981         'STATE 5 l 3083 3082',
13982         'STATE 5 n 3084 2964',
13983         'STATE 6 u 2931 3085',
13984         'STATE 2 o 3087 3086',
13985         'STATE 1 # 3088 2931',
13986         'STATE 5 i 3090 3089',
13987         'STATE 2 m 2939 2931',
13988         'STATE 6 t 3092 3091',
13989         'STATE 2 r 2970 3093',
13990         'STATE 3 e 2939 3094',
13991         'STATE 5 a 2931 3095',
13992         'STATE 1 r 2931 3096',
13993         'STATE 5 e 2939 2931',
13994         'STATE 1 n 3097 2939',
13995         'STATE 6 g 2964 3098',
13996         'STATE 3 i 2931 3099',
13997         'STATE 3 n 2964 3100',
13998         'STATE 3 r 2964 3101',
13999         'STATE 1 a 3103 3102',
14000         'STATE 6 e 2964 3104',
14001         'STATE 1 v 2931 2964',
14002         'STATE 5 p 2964 3105',
14003         'STATE 2 u 3107 3106',
14004         'STATE 3 r 3108 2931',
14005         'STATE 6 e 2939 3109',
14006         'STATE 1 c 3110 2939',
14007         'STATE 6 n 2931 2939',
14008         'STATE 6 m 3112 3111',
14009         'STATE 2 a 2939 3113',
14010         'STATE 3 a 2931 2939',
14011         'STATE 1 # 2931 3114',
14012         'STATE 1 k 2931 3115',
14013         'STATE 6 n 2931 3116',
14014         'STATE 4 t 3117 2939',
14015         'STATE 5 n 3119 3118',
14016         'STATE 3 a 2931 2964',
14017         'STATE 3 r 2939 3120',
14018         'STATE 3 a 2931 2970',
14019         'STATE 5 s 3122 3121',
14020         'STATE 3 i 2964 3099',
14021         'STATE 3 a 2964 3123',
14022         'STATE 6 t 2964 3124',
14023         'STATE 5 i 3126 3125',
14024         'STATE 5 a 3127 2931',
14025         'STATE 5 a 2931 3056',
14026         'STATE 6 n 2939 3128',
14027         'STATE 2 h 2931 2939',
14028         'STATE 2 s 2939 3129',
14029         'STATE 3 o 2939 3130',
14030         'STATE 1 # 2970 3131',
14031         'STATE 3 r 3133 3132',
14032         'STATE 5 e 2931 2939',
14033         'STATE 2 i 2931 3134',
14034         'STATE 3 i 3135 2939',
14035         'STATE 3 i 2964 3136',
14036         'STATE 2 m 2939 3137',
14037         'STATE 2 0 2931 3138',
14038         'STATE 6 # 2964 3139',
14039         'STATE 6 t 2920 2964',
14040         'STATE 6 y 2964 3140',
14041         'STATE 5 r 3141 2964',
14042         'STATE 5 a 3143 3142',
14043         'STATE 3 a 3145 3144',
14044         'STATE 1 p 2931 2970',
14045         'STATE 6 a 2939 3146',
14046         'STATE 6 d 2931 3147',
14047         'STATE 1 # 2931 2939',
14048         'STATE 3 o 2970 2931',
14049         'STATE 2 o 2931 2939',
14050         'STATE 2 a 2931 2939',
14051         'STATE 5 a 3148 2931',
14052         'STATE 2 d 2920 2939',
14053         'STATE 5 c 3150 3149',
14054         'STATE 6 s 2931 3151',
14055         'STATE 6 s 2964 3152',
14056         'STATE 6 o 2964 3153',
14057         'STATE 1 m 3155 3154',
14058         'STATE 6 e 2964 3156',
14059         'STATE 6 w 3158 3157',
14060         'STATE 6 e 2939 3159',
14061         'STATE 3 r 2939 3160',
14062         'STATE 6 e 2931 3161',
14063         'STATE 3 u 2939 2931',
14064         'STATE 6 v 2931 3162',
14065         'STATE 6 r 2931 2939',
14066         'STATE 5 o 3164 3163',
14067         'STATE 1 0 2964 2931',
14068         'STATE 1 m 2931 3165',
14069         'STATE 3 a 2970 2964',
14070         'STATE 3 i 2964 3166',
14071         'STATE 2 a 2964 3167',
14072         'STATE 6 l 2964 2931',
14073         'STATE 6 a 2964 3168',
14074         'STATE 3 o 3170 3169',
14075         'STATE 3 a 2920 2931',
14076         'STATE 1 0 2939 3171',
14077         'STATE 2 s 2939 3172',
14078         'STATE 2 m 2970 3173',
14079         'STATE 1 l 2931 3174',
14080         'STATE 5 u 2964 3175',
14081         'STATE 3 o 2964 3176',
14082         'STATE 6 o 2931 3177',
14083         'STATE 2 e 2964 3178',
14084         'STATE 6 l 3179 2964',
14085         'STATE 6 v 2964 2931',
14086         'STATE 2 r 3181 3180',
14087         'STATE 5 u 2931 2939',
14088         'STATE 3 r 3183 3182',
14089         'STATE 2 a 2931 3184',
14090         'STATE 1 s 2970 2993',
14091         'STATE 6 c 2931 3185',
14092         'STATE 5 k 2931 3186',
14093         'STATE 6 # 3187 2931',
14094         'STATE 3 l 2931 3188',
14095         'STATE 2 d 2964 3189',
14096         'STATE 3 i 2964 3190',
14097         'STATE 2 l 3192 3191',
14098         'STATE 1 # 2931 3193',
14099         'STATE 6 u 2970 3194',
14100         'STATE 1 # 2970 2939',
14101         'STATE 2 m 2931 3195',
14102         'STATE 3 u 3197 3196',
14103         'STATE 5 m 3199 3198',
14104         'STATE 3 a 2964 3200',
14105         'STATE 6 a 3201 2964',
14106         'STATE 5 r 3203 3202',
14107         'STATE 1 p 2964 2931',
14108         'STATE 2 y 2920 3204',
14109         'STATE 5 # 2939 3205',
14110         'STATE 3 a 3049 2939',
14111         'STATE 3 u 3207 3206',
14112         'STATE 3 o 3208 2931',
14113         'STATE 2 o 3210 3209',
14114         'STATE 6 # 2970 2931',
14115         'STATE 3 e 2964 3211',
14116         'STATE 1 0 2931 2964',
14117         'STATE 1 c 2931 2964',
14118         'STATE 1 l 2964 2931',
14119         'STATE 3 e 2964 3212',
14120         'STATE 2 r 2964 3213',
14121         'STATE 5 # 3215 3214',
14122         'STATE 5 l 2939 3216',
14123         'STATE 3 a 3218 3217',
14124         'STATE 6 r 2939 2931',
14125         'STATE 2 r 2939 2931',
14126         'STATE 1 c 2939 3219',
14127         'STATE 1 # 2939 2931',
14128         'STATE 1 # 3220 2964',
14129         'STATE 2 l 2964 3221',
14130         'STATE 1 # 3045 2964',
14131         'STATE 3 y 2939 3222',
14132         'STATE 1 # 2931 3223',
14133         'STATE 6 e 2939 3224',
14134         'STATE 3 i 2931 3225',
14135         'STATE 1 # 3207 2931',
14136         'STATE 2 r 3227 3226',
14137         'STATE 6 a 2931 2964',
14138         'STATE 1 s 2964 3228',
14139         'STATE 6 l 2939 3229',
14140         'STATE 1 t 2931 3230',
14141         'STATE 5 t 2931 2939',
14142         'STATE 3 o 2939 2931',
14143         'STATE 1 a 2931 3231',
14144         'STATE 3 i 2931 3232',
14145         'STATE 1 f 2964 3233',
14146         'STATE 5 u 2931 3234',
14147         'STATE 1 a 2920 3235',
14148         'STATE 2 a 2931 3236',
14149         'STATE 3 o 2931 2939',
14150         'STATE 6 e 2964 3237',
14151         'STATE 5 o 3239 3238',
14152         'STATE 1 o 2939 3240',
14153         'STATE 1 # 2931 3197',
14154         'STATE 1 t 2964 3241',
14155         'STATE 6 i 3051 3242',
14156         'STATE 6 # 2931 3243',
14157         'STATE 1 u 2939 3244',
14158         'STATE 3 a 3245 2964',
14159         'STATE 2 n 2939 3246',
14160         'STATE 1 0 2939 2931',
14161         'STATE 3 a 2939 3247',
14162         'STATE 2 f 2964 3248',
14163         'STATE 1 # 3250 3249',
14164         'STATE 1 r 2939 3251',
14165         'STATE 5 t 2964 3252',
14166         'STATE 5 m 2931 2939',
14167         'STATE 5 y 2931 3253',
14168         'STATE 3 i 2931 3254',
14169         'STATE 1 # 2964 3255',
14170         'STATE 2 m 2931 3256',
14171         'STATE 2 a 2931 3257',
14172         'STATE 1 g 2964 3258',
14173         'STATE 6 a 2931 2939',
14174         'STATE 2 i 2931 2939',
14175         'STATE 1 r 2964 3259',
14176         'STATE 5 # 2964 2931',
14177         'INDEX 3260 d',
14178         'STATE 4 # 3262 3261',
14179         'STATE 4 d 3264 3263',
14180         'STATE 3 e 3266 3265',
14181         'STATE 4 g 3268 3267',
14182         'STATE 2 g 3270 3269',
14183         'PHONE d',
14184         'STATE 2 k 3272 3271',
14185         'STATE 4 t 3274 3273',
14186         'STATE 5 e 3276 3275',
14187         'STATE 3 o 3276 3277',
14188         'STATE 3 o 3265 3276',
14189         'STATE 2 h 3279 3278',
14190         'PHONE t',
14191         'STATE 4 j 3276 3280',
14192         'STATE 5 # 3282 3281',
14193         'STATE 5 r 3265 3283',
14194         'PHONE epsilon',
14195         'STATE 2 b 3276 3284',
14196         'STATE 2 p 3272 3285',
14197         'STATE 1 t 3265 3286',
14198         'STATE 3 d 3288 3287',
14199         'STATE 1 # 3265 3289',
14200         'STATE 3 u 3265 3270',
14201         'STATE 5 a 3265 3290',
14202         'STATE 3 e 3292 3291',
14203         'STATE 2 c 3272 3293',
14204         'STATE 1 g 3265 3272',
14205         'STATE 4 u 3295 3294',
14206         'STATE 2 e 3297 3296',
14207         'STATE 5 h 3265 3298',
14208         'STATE 5 o 3265 3276',
14209         'STATE 5 y 3276 3299',
14210         'STATE 5 y 3265 3300',
14211         'STATE 2 s 3302 3301',
14212         'STATE 4 z 3303 3265',
14213         'STATE 2 0 3265 3304',
14214         'STATE 4 e 3306 3305',
14215         'STATE 4 y 3276 3307',
14216         'STATE 1 o 3265 3308',
14217         'STATE 5 i 3276 3309',
14218         'STATE 6 r 3276 3310',
14219         'STATE 2 f 3272 3311',
14220         'STATE 1 s 3272 3312',
14221         'STATE 6 # 3265 3313',
14222         'STATE 5 a 3315 3314',
14223         'STATE 1 # 3265 3316',
14224         'STATE 1 b 3265 3317',
14225         'STATE 6 # 3265 3318',
14226         'STATE 5 k 3265 3276',
14227         'STATE 2 m 3276 3319',
14228         'STATE 2 p 3265 3276',
14229         'STATE 2 x 3272 3265',
14230         'STATE 1 r 3272 3320',
14231         'STATE 6 k 3265 3321',
14232         'STATE 5 l 3323 3322',
14233         'STATE 1 g 3321 3324',
14234         'STATE 1 w 3265 3325',
14235         'STATE 1 l 3265 3326',
14236         'STATE 1 p 3276 3327',
14237         'STATE 6 d 3276 3328',
14238         'STATE 1 a 3272 3329',
14239         'PHONE jh',
14240         'STATE 3 e 3330 3265',
14241         'STATE 3 o 3321 3331',
14242         'STATE 3 i 3321 3265',
14243         'STATE 6 d 3265 3332',
14244         'STATE 5 d 3265 3333',
14245         'STATE 5 r 3265 3334',
14246         'STATE 2 w 3265 3335',
14247         'STATE 1 n 3272 3336',
14248         'STATE 1 # 3265 3337',
14249         'STATE 2 h 3321 3338',
14250         'STATE 2 a 3340 3339',
14251         'STATE 1 m 3265 3341',
14252         'STATE 4 i 3265 3342',
14253         'STATE 1 s 3344 3343',
14254         'STATE 1 i 3265 3345',
14255         'STATE 1 0 3321 3346',
14256         'STATE 6 t 3265 3347',
14257         'STATE 1 r 3348 3265',
14258         'STATE 6 # 3265 3349',
14259         'STATE 1 s 3265 3350',
14260         'STATE 5 # 3276 3265',
14261         'STATE 2 p 3276 3351',
14262         'STATE 2 h 3265 3276',
14263         'STATE 1 o 3265 3352',
14264         'STATE 5 c 3265 3321',
14265         'STATE 2 i 3265 3353',
14266         'STATE 2 i 3276 3265',
14267         'STATE 1 h 3276 3265',
14268         'STATE 6 # 3265 3354',
14269         'STATE 1 c 3276 3355',
14270         'STATE 1 u 3265 3272',
14271         'STATE 3 n 3321 3265',
14272         'STATE 2 a 3276 3356',
14273         'STATE 2 l 3276 3357',
14274         'STATE 5 r 3276 3265',
14275         'STATE 2 f 3276 3358',
14276         'STATE 3 i 3360 3359',
14277         'STATE 2 r 3276 3361',
14278         'STATE 2 r 3265 3276',
14279         'STATE 5 e 3362 3276',
14280         'STATE 1 # 3276 3265',
14281         'INDEX 3363 e',
14282         'STATE 6 0 3365 3364',
14283         'STATE 4 r 3367 3366',
14284         'STATE 4 # 3369 3368',
14285         'STATE 4 a 3371 3370',
14286         'STATE 5 r 3373 3372',
14287         'STATE 4 r 3375 3374',
14288         'STATE 3 e 3377 3376',
14289         'STATE 3 e 3379 3378',
14290         'STATE 5 r 3381 3380',
14291         'STATE 5 i 3383 3382',
14292         'STATE 3 b 3385 3384',
14293         'STATE 4 n 3387 3386',
14294         'STATE 3 e 3389 3388',
14295         'STATE 3 n 3391 3390',
14296         'STATE 2 r 3393 3392',
14297         'STATE 4 e 3395 3394',
14298         'STATE 2 r 3397 3396',
14299         'STATE 5 u 3399 3398',
14300         'STATE 3 w 3385 3400',
14301         'STATE 3 e 3389 3401',
14302         'STATE 6 n 3403 3402',
14303         'STATE 1 0 3405 3404',
14304         'PHONE eh1',
14305         'STATE 3 e 3407 3406',
14306         'STATE 3 e 3393 3408',
14307         'STATE 2 e 3409 3399',
14308         'PHONE ih1',
14309         'STATE 3 r 3411 3410',
14310         'STATE 2 o 3413 3412',
14311         'STATE 2 p 3393 3414',
14312         'PHONE iy1',
14313         'STATE 4 i 3416 3415',
14314         'STATE 3 r 3417 3399',
14315         'STATE 2 f 3418 3393',
14316         'STATE 1 # 3420 3419',
14317         'STATE 5 d 3422 3421',
14318         'PHONE epsilon',
14319         'STATE 3 b 3424 3423',
14320         'STATE 5 o 3426 3425',
14321         'STATE 6 a 3428 3427',
14322         'STATE 3 e 3389 3399',
14323         'STATE 3 h 3385 3429',
14324         'STATE 3 p 3399 3430',
14325         'STATE 4 l 3432 3431',
14326         'STATE 1 # 3393 3433',
14327         'STATE 3 m 3435 3434',
14328         'STATE 3 w 3437 3436',
14329         'STATE 3 k 3439 3438',
14330         'STATE 2 d 3441 3440',
14331         'STATE 2 i 3399 3442',
14332         'STATE 1 i 3444 3443',
14333         'STATE 2 n 3393 3445',
14334         'STATE 1 0 3447 3446',
14335         'STATE 5 r 3449 3448',
14336         'STATE 1 0 3451 3450',
14337         'STATE 1 # 3393 3452',
14338         'STATE 1 p 3453 3393',
14339         'STATE 5 a 3455 3454',
14340         'STATE 6 h 3457 3456',
14341         'STATE 3 h 3385 3458',
14342         'STATE 1 u 3444 3459',
14343         'STATE 6 d 3399 3385',
14344         'STATE 5 e 3461 3460',
14345         'STATE 1 0 3463 3462',
14346         'STATE 6 o 3465 3464',
14347         'STATE 3 l 3399 3466',
14348         'STATE 2 o 3399 3467',
14349         'STATE 6 a 3468 3385',
14350         'STATE 4 k 3470 3469',
14351         'STATE 3 i 3472 3471',
14352         'STATE 2 r 3393 3473',
14353         'STATE 2 g 3475 3474',
14354         'STATE 1 a 3455 3476',
14355         'STATE 3 y 3477 3399',
14356         'PHONE y-uw1',
14357         'STATE 2 n 3479 3478',
14358         'STATE 2 t 3444 3480',
14359         'STATE 2 b 3399 3481',
14360         'STATE 1 n 3399 3455',
14361         'STATE 2 a 3399 3482',
14362         'STATE 1 t 3399 3483',
14363         'PHONE iy',
14364         'STATE 1 d 3393 3484',
14365         'STATE 3 i 3486 3485',
14366         'STATE 3 r 3488 3487',
14367         'STATE 5 g 3490 3489',
14368         'STATE 6 a 3385 3491',
14369         'STATE 2 p 3492 3399',
14370         'STATE 6 a 3444 3493',
14371         'STATE 4 d 3444 3393',
14372         'STATE 4 m 3385 3494',
14373         'STATE 4 n 3389 3495',
14374         'PHONE ax',
14375         'STATE 1 0 3497 3496',
14376         'STATE 5 t 3498 3393',
14377         'STATE 3 t 3500 3499',
14378         'STATE 6 r 3393 3399',
14379         'STATE 5 a 3502 3501',
14380         'STATE 6 d 3399 3503',
14381         'STATE 6 # 3505 3504',
14382         'STATE 3 a 3385 3506',
14383         'STATE 6 e 3508 3507',
14384         'STATE 3 t 3389 3509',
14385         'STATE 2 a 3389 3510',
14386         'STATE 6 y 3385 3511',
14387         'STATE 3 s 3385 3512',
14388         'STATE 3 t 3514 3513',
14389         'STATE 1 # 3385 3515',
14390         'STATE 3 t 3517 3516',
14391         'STATE 1 # 3399 3518',
14392         'STATE 4 d 3393 3519',
14393         'STATE 3 i 3521 3520',
14394         'STATE 3 r 3522 3455',
14395         'STATE 2 l 3522 3523',
14396         'STATE 1 m 3399 3524',
14397         'STATE 3 h 3399 3525',
14398         'STATE 3 t 3526 3399',
14399         'STATE 2 z 3444 3527',
14400         'STATE 1 i 3529 3528',
14401         'STATE 2 e 3399 3530',
14402         'STATE 1 h 3399 3531',
14403         'STATE 2 s 3533 3532',
14404         'STATE 5 t 3535 3534',
14405         'STATE 5 t 3537 3536',
14406         'STATE 4 w 3539 3538',
14407         'STATE 4 v 3541 3540',
14408         'STATE 3 r 3543 3542',
14409         'STATE 6 h 3545 3544',
14410         'STATE 6 o 3385 3546',
14411         'STATE 5 m 3444 3399',
14412         'STATE 6 t 3444 3399',
14413         'PHONE ih',
14414         'STATE 6 # 3393 3547',
14415         'STATE 5 s 3549 3548',
14416         'STATE 3 r 3551 3550',
14417         'STATE 2 # 3385 3552',
14418         'STATE 3 d 3385 3553',
14419         'STATE 1 # 3385 3554',
14420         'STATE 5 u 3556 3555',
14421         'STATE 6 # 3558 3557',
14422         'STATE 1 0 3560 3559',
14423         'STATE 1 # 3546 3399',
14424         'STATE 3 i 3399 3385',
14425         'STATE 6 u 3399 3561',
14426         'STATE 3 d 3563 3562',
14427         'STATE 1 0 3385 3564',
14428         'STATE 1 i 3385 3565',
14429         'STATE 2 i 3389 3566',
14430         'STATE 1 m 3385 3567',
14431         'STATE 3 t 3399 3568',
14432         'STATE 4 t 3570 3569',
14433         'STATE 4 d 3455 3571',
14434         'STATE 3 t 3573 3572',
14435         'STATE 3 a 3399 3574',
14436         'STATE 2 s 3455 3575',
14437         'STATE 1 a 3576 3399',
14438         'STATE 1 s 3393 3577',
14439         'STATE 1 # 3578 3455',
14440         'STATE 2 t 3399 3579',
14441         'PHONE eh',
14442         'STATE 1 o 3455 3580',
14443         'PHONE ey1',
14444         'STATE 2 e 3582 3581',
14445         'STATE 1 a 3444 3583',
14446         'STATE 2 d 3444 3584',
14447         'STATE 1 d 3399 3585',
14448         'STATE 2 o 3444 3399',
14449         'STATE 2 y 3399 3586',
14450         'STATE 1 b 3399 3587',
14451         'STATE 1 e 3444 3588',
14452         'STATE 1 s 3444 3393',
14453         'STATE 5 s 3590 3589',
14454         'STATE 6 # 3592 3591',
14455         'STATE 4 n 3594 3593',
14456         'STATE 4 s 3596 3595',
14457         'STATE 4 u 3598 3597',
14458         'STATE 3 n 3600 3599',
14459         'STATE 4 u 3602 3601',
14460         'STATE 5 i 3604 3603',
14461         'STATE 3 v 3606 3605',
14462         'STATE 5 n 3608 3607',
14463         'STATE 6 n 3609 3399',
14464         'STATE 3 l 3399 3610',
14465         'STATE 3 h 3385 3399',
14466         'STATE 5 e 3611 3393',
14467         'STATE 5 b 3613 3612',
14468         'STATE 6 u 3385 3614',
14469         'STATE 3 h 3616 3615',
14470         'STATE 5 g 3618 3617',
14471         'STATE 3 h 3393 3385',
14472         'STATE 3 r 3620 3619',
14473         'STATE 1 m 3385 3621',
14474         'STATE 2 e 3623 3622',
14475         'STATE 1 0 3624 3399',
14476         'STATE 1 0 3626 3625',
14477         'STATE 3 i 3399 3627',
14478         'STATE 6 # 3629 3628',
14479         'STATE 6 g 3631 3630',
14480         'STATE 3 p 3399 3632',
14481         'STATE 6 z 3399 3633',
14482         'STATE 1 0 3634 3399',
14483         'STATE 2 x 3389 3399',
14484         'STATE 3 p 3389 3385',
14485         'STATE 2 m 3389 3635',
14486         'STATE 6 o 3637 3636',
14487         'STATE 3 f 3399 3385',
14488         'STATE 4 w 3639 3638',
14489         'STATE 3 k 3455 3640',
14490         'STATE 4 s 3642 3641',
14491         'STATE 3 c 3644 3643',
14492         'STATE 2 a 3522 3645',
14493         'STATE 3 u 3647 3646',
14494         'STATE 2 t 3455 3648',
14495         'STATE 2 n 3455 3399',
14496         'STATE 2 s 3393 3649',
14497         'STATE 3 o 3399 3650',
14498         'STATE 2 r 3455 3399',
14499         'STATE 2 r 3522 3651',
14500         'STATE 3 b 3399 3652',
14501         'STATE 3 s 3399 3653',
14502         'STATE 1 o 3444 3654',
14503         'STATE 2 m 3444 3399',
14504         'STATE 2 u 3399 3655',
14505         'STATE 1 e 3399 3656',
14506         'STATE 1 d 3399 3657',
14507         'STATE 1 u 3444 3658',
14508         'STATE 4 n 3660 3659',
14509         'STATE 6 # 3662 3661',
14510         'STATE 4 n 3664 3663',
14511         'STATE 4 n 3666 3665',
14512         'STATE 4 t 3668 3667',
14513         'STATE 5 c 3670 3669',
14514         'STATE 1 o 3672 3671',
14515         'STATE 6 # 3455 3399',
14516         'STATE 3 d 3674 3673',
14517         'STATE 3 d 3676 3675',
14518         'STATE 5 e 3678 3677',
14519         'PHONE uw1',
14520         'STATE 4 n 3680 3679',
14521         'STATE 6 i 3444 3681',
14522         'STATE 5 a 3444 3682',
14523         'STATE 6 e 3444 3683',
14524         'STATE 2 t 3493 3684',
14525         'STATE 5 t 3399 3685',
14526         'STATE 5 m 3686 3399',
14527         'STATE 1 0 3687 3399',
14528         'STATE 2 # 3524 3399',
14529         'STATE 3 h 3399 3688',
14530         'STATE 4 l 3455 3393',
14531         'STATE 2 b 3690 3689',
14532         'STATE 2 a 3399 3691',
14533         'STATE 6 a 3385 3692',
14534         'STATE 5 n 3694 3693',
14535         'STATE 6 t 3385 3695',
14536         'STATE 5 c 3444 3696',
14537         'STATE 6 a 3399 3393',
14538         'STATE 1 0 3697 3393',
14539         'STATE 1 0 3699 3698',
14540         'STATE 6 # 3385 3399',
14541         'STATE 6 # 3399 3700',
14542         'STATE 3 w 3600 3701',
14543         'STATE 6 p 3494 3702',
14544         'STATE 3 h 3703 3399',
14545         'STATE 2 # 3705 3704',
14546         'STATE 3 h 3399 3706',
14547         'STATE 3 h 3708 3707',
14548         'STATE 3 i 3710 3709',
14549         'STATE 6 c 3494 3711',
14550         'STATE 3 d 3444 3399',
14551         'STATE 3 s 3522 3712',
14552         'STATE 3 i 3399 3713',
14553         'STATE 6 v 3399 3714',
14554         'STATE 1 0 3385 3389',
14555         'STATE 1 a 3399 3715',
14556         'STATE 2 n 3385 3399',
14557         'STATE 4 s 3717 3716',
14558         'STATE 2 v 3437 3718',
14559         'STATE 3 u 3720 3719',
14560         'STATE 4 e 3399 3721',
14561         'STATE 2 n 3722 3399',
14562         'STATE 3 z 3522 3723',
14563         'STATE 2 i 3522 3724',
14564         'STATE 1 o 3522 3725',
14565         'STATE 1 e 3455 3726',
14566         'STATE 1 # 3399 3455',
14567         'STATE 2 r 3728 3727',
14568         'STATE 2 l 3393 3729',
14569         'STATE 2 o 3455 3730',
14570         'STATE 1 e 3522 3731',
14571         'STATE 2 b 3399 3732',
14572         'STATE 3 w 3600 3399',
14573         'STATE 1 e 3444 3399',
14574         'STATE 1 t 3399 3733',
14575         'STATE 1 y 3399 3734',
14576         'STATE 1 e 3399 3735',
14577         'STATE 2 f 3444 3736',
14578         'STATE 4 l 3738 3737',
14579         'STATE 5 e 3740 3739',
14580         'STATE 6 i 3385 3741',
14581         'STATE 4 y 3399 3742',
14582         'STATE 4 s 3744 3743',
14583         'STATE 6 s 3746 3745',
14584         'STATE 4 t 3748 3747',
14585         'STATE 1 # 3385 3749',
14586         'STATE 5 l 3751 3750',
14587         'STATE 1 # 3753 3752',
14588         'STATE 1 f 3385 3754',
14589         'STATE 1 e 3455 3755',
14590         'STATE 4 n 3757 3756',
14591         'STATE 6 a 3455 3385',
14592         'STATE 4 x 3759 3758',
14593         'STATE 4 m 3761 3760',
14594         'STATE 3 t 3762 3399',
14595         'STATE 5 t 3762 3399',
14596         'STATE 3 b 3455 3763',
14597         'STATE 6 l 3764 3399',
14598         'STATE 4 y 3524 3765',
14599         'STATE 6 w 3455 3766',
14600         'STATE 5 s 3399 3762',
14601         'STATE 6 l 3385 3767',
14602         'STATE 6 v 3494 3444',
14603         'STATE 3 d 3399 3768',
14604         'STATE 6 l 3399 3524',
14605         'STATE 6 b 3393 3399',
14606         'STATE 6 t 3444 3769',
14607         'STATE 2 0 3524 3770',
14608         'STATE 5 m 3393 3771',
14609         'STATE 3 r 3399 3393',
14610         'STATE 3 g 3399 3772',
14611         'STATE 2 b 3385 3773',
14612         'STATE 5 t 3393 3774',
14613         'STATE 6 d 3444 3393',
14614         'STATE 5 v 3385 3393',
14615         'STATE 5 l 3776 3775',
14616         'STATE 3 b 3393 3777',
14617         'STATE 2 b 3385 3778',
14618         'STATE 6 i 3385 3393',
14619         'STATE 3 z 3780 3779',
14620         'STATE 3 u 3762 3399',
14621         'STATE 3 p 3399 3385',
14622         'STATE 6 p 3385 3781',
14623         'STATE 6 s 3494 3522',
14624         'STATE 3 d 3494 3782',
14625         'STATE 2 e 3399 3385',
14626         'STATE 6 o 3385 3783',
14627         'STATE 1 # 3785 3784',
14628         'STATE 2 w 3385 3786',
14629         'STATE 2 r 3399 3522',
14630         'STATE 3 p 3399 3787',
14631         'STATE 3 v 3399 3788',
14632         'STATE 1 a 3790 3789',
14633         'STATE 6 s 3399 3385',
14634         'STATE 1 # 3792 3791',
14635         'STATE 3 d 3794 3793',
14636         'STATE 3 s 3455 3795',
14637         'STATE 1 # 3600 3796',
14638         'STATE 3 l 3455 3797',
14639         'STATE 2 q 3524 3399',
14640         'STATE 4 y 3399 3798',
14641         'STATE 1 e 3522 3799',
14642         'STATE 3 s 3522 3800',
14643         'STATE 2 e 3522 3801',
14644         'STATE 2 i 3522 3385',
14645         'STATE 1 i 3455 3802',
14646         'STATE 2 h 3455 3385',
14647         'STATE 1 e 3455 3385',
14648         'STATE 4 s 3803 3393',
14649         'STATE 3 r 3385 3455',
14650         'STATE 2 s 3522 3804',
14651         'STATE 3 j 3399 3805',
14652         'STATE 1 s 3806 3399',
14653         'STATE 2 u 3399 3807',
14654         'STATE 1 m 3399 3808',
14655         'STATE 1 n 3444 3809',
14656         'STATE 4 w 3811 3810',
14657         'STATE 5 y 3813 3812',
14658         'STATE 5 d 3815 3814',
14659         'STATE 6 # 3817 3816',
14660         'STATE 1 # 3819 3818',
14661         'STATE 4 w 3600 3820',
14662         'STATE 4 u 3822 3821',
14663         'STATE 6 o 3824 3823',
14664         'STATE 6 l 3455 3825',
14665         'STATE 3 m 3455 3826',
14666         'STATE 4 s 3828 3827',
14667         'STATE 3 u 3399 3829',
14668         'STATE 3 m 3455 3830',
14669         'STATE 4 w 3832 3831',
14670         'STATE 6 o 3385 3833',
14671         'STATE 2 p 3399 3834',
14672         'STATE 2 d 3835 3399',
14673         'STATE 5 n 3385 3836',
14674         'STATE 6 e 3455 3399',
14675         'STATE 4 t 3837 3399',
14676         'STATE 6 i 3455 3838',
14677         'STATE 4 y 3840 3839',
14678         'STATE 2 # 3385 3841',
14679         'STATE 4 l 3843 3842',
14680         'STATE 6 g 3385 3844',
14681         'PHONE oy1',
14682         'STATE 3 d 3600 3845',
14683         'STATE 3 j 3600 3385',
14684         'STATE 5 a 3847 3846',
14685         'STATE 5 a 3455 3848',
14686         'STATE 5 e 3494 3849',
14687         'STATE 5 j 3524 3850',
14688         'STATE 6 v 3393 3851',
14689         'STATE 3 r 3852 3524',
14690         'STATE 3 w 3854 3853',
14691         'STATE 3 c 3399 3855',
14692         'STATE 6 # 3856 3393',
14693         'STATE 6 u 3858 3857',
14694         'STATE 6 a 3444 3393',
14695         'STATE 6 i 3393 3859',
14696         'STATE 6 o 3385 3860',
14697         'STATE 2 t 3385 3861',
14698         'STATE 3 a 3385 3862',
14699         'STATE 1 0 3389 3399',
14700         'STATE 1 # 3385 3399',
14701         'STATE 6 r 3399 3863',
14702         'STATE 3 r 3393 3864',
14703         'STATE 2 t 3399 3389',
14704         'STATE 2 t 3385 3522',
14705         'STATE 1 l 3399 3389',
14706         'STATE 6 # 3389 3865',
14707         'STATE 3 z 3389 3866',
14708         'STATE 6 d 3399 3867',
14709         'STATE 2 r 3385 3399',
14710         'STATE 2 n 3399 3868',
14711         'STATE 2 s 3385 3399',
14712         'STATE 4 d 3870 3869',
14713         'STATE 4 d 3455 3871',
14714         'STATE 3 c 3455 3872',
14715         'STATE 3 h 3874 3873',
14716         'STATE 3 i 3876 3875',
14717         'STATE 4 m 3455 3877',
14718         'STATE 1 a 3399 3522',
14719         'STATE 3 l 3879 3878',
14720         'STATE 2 a 3522 3880',
14721         'STATE 2 p 3455 3881',
14722         'STATE 2 n 3393 3882',
14723         'STATE 2 h 3522 3883',
14724         'STATE 3 i 3399 3884',
14725         'STATE 2 a 3444 3399',
14726         'STATE 2 r 3399 3885',
14727         'STATE 1 o 3399 3886',
14728         'STATE 1 a 3444 3887',
14729         'STATE 4 o 3889 3888',
14730         'STATE 1 # 3891 3890',
14731         'STATE 5 l 3893 3892',
14732         'STATE 6 # 3399 3455',
14733         'STATE 5 b 3455 3894',
14734         'STATE 6 o 3896 3895',
14735         'STATE 6 s 3399 3897',
14736         'STATE 2 y 3393 3898',
14737         'STATE 4 w 3900 3899',
14738         'STATE 4 s 3902 3901',
14739         'STATE 1 # 3904 3903',
14740         'STATE 4 o 3444 3905',
14741         'STATE 3 r 3762 3399',
14742         'STATE 3 n 3455 3906',
14743         'STATE 2 i 3399 3907',
14744         'STATE 6 h 3730 3908',
14745         'STATE 1 r 3385 3909',
14746         'STATE 4 c 3385 3910',
14747         'STATE 1 # 3385 3911',
14748         'STATE 1 # 3385 3912',
14749         'STATE 3 s 3914 3913',
14750         'STATE 1 a 3576 3915',
14751         'STATE 5 s 3917 3916',
14752         'STATE 4 l 3790 3399',
14753         'STATE 1 o 3455 3918',
14754         'STATE 5 z 3399 3919',
14755         'STATE 1 a 3920 3399',
14756         'STATE 6 # 3399 3385',
14757         'STATE 1 e 3455 3921',
14758         'STATE 2 # 3923 3922',
14759         'STATE 5 e 3399 3924',
14760         'STATE 5 a 3494 3925',
14761         'STATE 4 v 3927 3926',
14762         'STATE 5 i 3929 3928',
14763         'STATE 5 i 3931 3930',
14764         'STATE 3 l 3933 3932',
14765         'STATE 4 j 3494 3934',
14766         'STATE 6 l 3936 3935',
14767         'STATE 5 e 3393 3937',
14768         'STATE 5 o 3494 3385',
14769         'STATE 6 o 3399 3938',
14770         'STATE 6 f 3393 3939',
14771         'STATE 2 f 3524 3399',
14772         'STATE 6 i 3941 3940',
14773         'STATE 5 t 3385 3393',
14774         'STATE 6 l 3393 3399',
14775         'STATE 1 # 3393 3444',
14776         'STATE 6 o 3943 3942',
14777         'STATE 5 s 3385 3393',
14778         'STATE 6 l 3444 3393',
14779         'STATE 3 l 3944 3393',
14780         'STATE 1 s 3385 3945',
14781         'STATE 1 l 3947 3946',
14782         'STATE 3 p 3399 3948',
14783         'STATE 1 # 3399 3949',
14784         'STATE 3 j 3385 3950',
14785         'STATE 2 # 3568 3494',
14786         'STATE 6 s 3952 3951',
14787         'STATE 1 d 3399 3953',
14788         'STATE 4 y 3955 3954',
14789         'STATE 3 w 3957 3956',
14790         'STATE 4 z 3522 3958',
14791         'STATE 3 g 3455 3959',
14792         'STATE 3 r 3961 3960',
14793         'PHONE y-uw',
14794         'STATE 2 o 3963 3962',
14795         'STATE 2 l 3399 3455',
14796         'STATE 2 t 3399 3964',
14797         'STATE 1 z 3522 3965',
14798         'STATE 2 a 3522 3966',
14799         'STATE 2 u 3522 3385',
14800         'STATE 3 p 3968 3967',
14801         'STATE 2 t 3393 3444',
14802         'STATE 1 w 3522 3969',
14803         'STATE 2 i 3399 3970',
14804         'STATE 2 n 3399 3971',
14805         'STATE 1 r 3399 3972',
14806         'STATE 2 b 3533 3973',
14807         'STATE 6 # 3975 3974',
14808         'STATE 3 g 3399 3976',
14809         'STATE 6 # 3600 3977',
14810         'STATE 5 e 3979 3978',
14811         'STATE 5 d 3981 3980',
14812         'STATE 6 # 3983 3982',
14813         'STATE 6 # 3985 3984',
14814         'STATE 3 t 3385 3986',
14815         'STATE 3 u 3385 3987',
14816         'STATE 6 d 3455 3988',
14817         'STATE 2 l 3393 3989',
14818         'STATE 4 s 3991 3990',
14819         'STATE 2 s 3385 3992',
14820         'STATE 3 o 3399 3993',
14821         'STATE 3 r 3385 3994',
14822         'STATE 3 n 3455 3995',
14823         'STATE 4 n 3455 3996',
14824         'STATE 3 o 3399 3997',
14825         'STATE 2 n 3385 3998',
14826         'STATE 3 l 3399 3999',
14827         'STATE 1 # 3385 4000',
14828         'STATE 3 c 3455 4001',
14829         'STATE 1 # 3385 4002',
14830         'STATE 3 u 3385 4003',
14831         'STATE 3 g 4005 4004',
14832         'STATE 3 v 3385 4006',
14833         'STATE 1 r 3385 3455',
14834         'STATE 5 c 3385 3399',
14835         'STATE 2 v 4007 3399',
14836         'STATE 2 n 3385 3437',
14837         'STATE 2 t 3455 4008',
14838         'STATE 5 e 3399 3455',
14839         'STATE 5 a 3455 3399',
14840         'STATE 2 t 3399 4009',
14841         'STATE 4 n 4011 4010',
14842         'STATE 4 o 4013 4012',
14843         'STATE 3 k 4015 4014',
14844         'STATE 5 i 4017 4016',
14845         'STATE 4 c 4019 4018',
14846         'STATE 6 a 3393 4020',
14847         'STATE 5 u 4022 4021',
14848         'STATE 6 c 3385 4023',
14849         'STATE 6 r 4025 4024',
14850         'STATE 6 l 3444 3385',
14851         'STATE 3 s 3600 4026',
14852         'STATE 5 a 4027 3600',
14853         'STATE 5 e 4029 4028',
14854         'STATE 6 i 3455 4030',
14855         'STATE 4 c 3494 4031',
14856         'STATE 6 i 3522 4032',
14857         'STATE 6 u 3399 4033',
14858         'STATE 6 s 3393 4034',
14859         'STATE 6 t 4036 4035',
14860         'STATE 2 c 3444 4037',
14861         'STATE 5 f 4039 4038',
14862         'STATE 5 l 3385 3393',
14863         'STATE 6 e 3393 3385',
14864         'STATE 2 d 3385 4040',
14865         'STATE 5 y 4042 4041',
14866         'STATE 5 t 4043 3399',
14867         'STATE 6 l 4045 4044',
14868         'STATE 6 r 3399 4046',
14869         'STATE 6 a 3399 4047',
14870         'STATE 2 p 3385 4048',
14871         'STATE 1 0 3385 3399',
14872         'STATE 3 f 3399 4049',
14873         'STATE 4 e 3399 4050',
14874         'STATE 3 k 4052 4051',
14875         'STATE 1 # 3399 4053',
14876         'STATE 2 e 3600 3399',
14877         'STATE 4 a 3444 4054',
14878         'STATE 3 h 4056 4055',
14879         'STATE 1 e 3600 4027',
14880         'STATE 2 b 4027 3600',
14881         'STATE 2 c 4058 4057',
14882         'STATE 3 n 3522 3455',
14883         'STATE 2 s 4060 4059',
14884         'STATE 1 p 3494 4061',
14885         'STATE 2 o 3522 3494',
14886         'STATE 3 g 3455 4062',
14887         'STATE 2 a 3455 4063',
14888         'STATE 1 r 3455 4064',
14889         'STATE 1 a 3399 4065',
14890         'STATE 1 o 3399 4066',
14891         'STATE 1 c 3444 4067',
14892         'STATE 1 i 3444 4068',
14893         'STATE 1 # 4070 4069',
14894         'STATE 5 e 4072 4071',
14895         'STATE 1 # 4074 4073',
14896         'STATE 2 c 3600 4075',
14897         'STATE 3 r 3600 4076',
14898         'STATE 6 l 3600 3399',
14899         'STATE 6 # 4078 4077',
14900         'STATE 3 f 4080 4079',
14901         'STATE 3 o 3399 4081',
14902         'STATE 3 w 4083 4082',
14903         'STATE 1 # 4085 4084',
14904         'STATE 5 y 3455 4086',
14905         'STATE 2 l 4088 4087',
14906         'STATE 3 l 3385 3455',
14907         'STATE 3 g 4090 4089',
14908         'STATE 2 i 3393 4091',
14909         'STATE 6 k 3385 4092',
14910         'STATE 6 l 4094 4093',
14911         'STATE 3 l 3385 4095',
14912         'STATE 4 u 3399 4096',
14913         'STATE 6 a 3522 4097',
14914         'STATE 4 n 3455 4098',
14915         'STATE 3 r 3385 4099',
14916         'STATE 3 u 4101 4100',
14917         'STATE 1 # 4103 4102',
14918         'STATE 2 o 3399 4104',
14919         'STATE 2 i 3385 4105',
14920         'STATE 1 i 3385 3455',
14921         'STATE 4 d 3522 4106',
14922         'STATE 1 d 3385 4107',
14923         'STATE 3 k 4109 4108',
14924         'STATE 2 d 3455 4110',
14925         'STATE 3 r 3455 4111',
14926         'STATE 5 e 3399 3437',
14927         'STATE 1 q 3455 4112',
14928         'STATE 2 c 4113 3596',
14929         'STATE 6 c 4115 4114',
14930         'STATE 5 g 4117 4116',
14931         'STATE 5 t 4119 4118',
14932         'STATE 5 r 3399 4120',
14933         'STATE 5 r 3385 3524',
14934         'STATE 6 e 3524 3393',
14935         'STATE 6 c 3385 4121',
14936         'STATE 6 s 3494 3385',
14937         'STATE 4 g 4123 4122',
14938         'STATE 5 e 3455 4124',
14939         'STATE 6 r 3385 4125',
14940         'STATE 6 o 4127 4126',
14941         'STATE 6 c 3522 3455',
14942         'STATE 6 s 3393 3455',
14943         'STATE 5 e 3389 4128',
14944         'STATE 5 e 3444 4129',
14945         'STATE 3 j 3600 3437',
14946         'PHONE uw',
14947         'STATE 4 c 4131 4130',
14948         'STATE 6 r 4133 4132',
14949         'STATE 6 r 4135 4134',
14950         'STATE 4 g 3494 3455',
14951         'STATE 6 u 3389 3385',
14952         'STATE 3 s 4136 3399',
14953         'STATE 6 c 3444 3399',
14954         'STATE 1 t 3385 4137',
14955         'STATE 3 r 3444 4138',
14956         'STATE 3 d 3393 4139',
14957         'STATE 3 l 3393 4140',
14958         'STATE 3 l 3393 3385',
14959         'STATE 1 t 3385 3393',
14960         'STATE 1 0 4142 4141',
14961         'STATE 6 l 3385 3399',
14962         'STATE 6 y 3399 4143',
14963         'STATE 6 t 3385 4144',
14964         'STATE 3 g 3522 3385',
14965         'STATE 2 r 3389 3399',
14966         'STATE 6 s 4146 4145',
14967         'STATE 6 # 3385 4147',
14968         'STATE 6 e 3399 3385',
14969         'STATE 4 a 4149 4148',
14970         'STATE 3 v 4151 4150',
14971         'STATE 2 c 3399 4152',
14972         'STATE 3 m 3399 4153',
14973         'STATE 4 o 3444 4154',
14974         'STATE 3 z 3455 4155',
14975         'STATE 2 t 3399 3455',
14976         'STATE 3 p 3455 4156',
14977         'STATE 1 o 3524 3455',
14978         'STATE 2 a 3385 4157',
14979         'STATE 4 p 3385 3522',
14980         'STATE 3 r 4159 4158',
14981         'STATE 3 h 3455 4160',
14982         'STATE 1 a 3455 3385',
14983         'STATE 1 i 3522 3455',
14984         'STATE 3 a 3399 4161',
14985         'STATE 2 g 3399 3444',
14986         'STATE 1 z 3444 4162',
14987         'STATE 1 r 3882 4163',
14988         'STATE 5 i 4165 4164',
14989         'STATE 3 o 3399 4166',
14990         'STATE 4 u 4168 4167',
14991         'STATE 4 k 3494 4169',
14992         'STATE 6 l 3393 4170',
14993         'STATE 3 d 3444 4171',
14994         'STATE 6 c 3399 4172',
14995         'STATE 2 s 3600 4173',
14996         'STATE 2 n 4175 4174',
14997         'STATE 3 a 3399 4176',
14998         'STATE 3 h 3385 4177',
14999         'STATE 6 t 3522 4178',
15000         'STATE 3 u 4049 4179',
15001         'STATE 1 # 3385 4180',
15002         'STATE 2 o 3522 4181',
15003         'STATE 5 c 4183 4182',
15004         'STATE 3 u 4185 4184',
15005         'STATE 5 a 4187 4186',
15006         'STATE 1 l 3455 4188',
15007         'STATE 1 a 3385 3522',
15008         'STATE 1 # 4190 4189',
15009         'STATE 6 r 3385 3455',
15010         'STATE 3 c 3393 4191',
15011         'STATE 6 e 4193 4192',
15012         'STATE 3 n 3455 4194',
15013         'STATE 3 l 3455 3399',
15014         'STATE 3 j 3385 4195',
15015         'STATE 3 u 3399 4196',
15016         'STATE 6 n 3399 3385',
15017         'STATE 3 l 3455 4197',
15018         'STATE 2 s 3385 4198',
15019         'STATE 4 l 4200 4199',
15020         'STATE 2 q 3385 4201',
15021         'STATE 6 a 4203 4202',
15022         'STATE 2 p 3385 4204',
15023         'STATE 3 r 3385 4205',
15024         'STATE 1 d 3385 4206',
15025         'STATE 1 o 3522 4207',
15026         'STATE 3 w 3385 4208',
15027         'STATE 3 v 3455 4209',
15028         'STATE 1 o 3455 3522',
15029         'STATE 2 g 3522 3455',
15030         'STATE 3 g 3455 4210',
15031         'STATE 6 r 3455 4211',
15032         'STATE 1 s 3455 3399',
15033         'STATE 4 m 4213 4212',
15034         'STATE 4 l 3455 4214',
15035         'STATE 6 e 4216 4215',
15036         'STATE 6 l 3389 4217',
15037         'STATE 6 # 4219 4218',
15038         'STATE 3 o 3399 4220',
15039         'STATE 3 l 4222 4221',
15040         'STATE 6 m 3494 4223',
15041         'STATE 5 p 4225 4224',
15042         'STATE 6 o 3385 3494',
15043         'STATE 5 i 4227 4226',
15044         'STATE 6 n 3385 4228',
15045         'STATE 6 y 3455 4229',
15046         'STATE 5 m 3522 3385',
15047         'STATE 5 a 3389 4230',
15048         'STATE 5 a 3385 3389',
15049         'STATE 4 g 4232 4231',
15050         'STATE 5 u 3494 4233',
15051         'STATE 4 s 4235 4234',
15052         'STATE 4 f 3385 4236',
15053         'STATE 4 m 3393 4237',
15054         'STATE 4 m 3444 3455',
15055         'STATE 5 n 3524 3399',
15056         'STATE 1 l 4239 4238',
15057         'STATE 5 n 3399 3385',
15058         'STATE 3 p 3393 4240',
15059         'STATE 6 a 3393 4241',
15060         'STATE 5 t 4243 4242',
15061         'STATE 5 d 4245 4244',
15062         'STATE 6 i 3399 3385',
15063         'STATE 3 s 3399 4246',
15064         'STATE 3 d 3385 4247',
15065         'STATE 3 t 3399 3385',
15066         'STATE 3 t 3792 4248',
15067         'STATE 4 o 3444 4249',
15068         'STATE 3 y 3399 4250',
15069         'STATE 1 # 4251 3399',
15070         'STATE 1 u 3524 3399',
15071         'STATE 1 a 4252 3399',
15072         'STATE 3 y 3399 4253',
15073         'STATE 4 e 3399 4254',
15074         'STATE 3 x 3455 4255',
15075         'STATE 3 g 3455 4256',
15076         'STATE 4 c 3385 4257',
15077         'STATE 1 b 3522 4258',
15078         'STATE 2 o 3494 3522',
15079         'STATE 1 u 3455 4259',
15080         'STATE 3 l 4260 3399',
15081         'STATE 1 s 3444 4261',
15082         'STATE 1 t 3393 4262',
15083         'STATE 4 y 3399 4263',
15084         'STATE 6 a 4265 4264',
15085         'STATE 2 p 4267 4266',
15086         'STATE 4 c 4269 4268',
15087         'STATE 5 m 3393 4270',
15088         'STATE 3 o 3399 4271',
15089         'STATE 3 k 3399 4272',
15090         'STATE 5 r 3393 4273',
15091         'STATE 6 l 4274 3399',
15092         'STATE 3 l 3600 3399',
15093         'STATE 6 s 4276 4275',
15094         'STATE 6 a 3455 4277',
15095         'STATE 3 u 3399 4278',
15096         'STATE 6 # 3522 4279',
15097         'STATE 1 r 3522 3385',
15098         'STATE 2 n 4281 4280',
15099         'STATE 3 b 4283 4282',
15100         'STATE 2 e 3522 3385',
15101         'STATE 3 o 4285 4284',
15102         'STATE 6 e 4287 4286',
15103         'STATE 3 o 3399 4288',
15104         'STATE 2 q 3385 3399',
15105         'STATE 5 o 3385 4289',
15106         'STATE 2 e 3385 4290',
15107         'STATE 1 b 3522 4291',
15108         'STATE 3 m 3385 4292',
15109         'STATE 6 l 3385 4293',
15110         'STATE 1 o 3393 4294',
15111         'STATE 4 n 4296 4295',
15112         'STATE 4 n 4298 4297',
15113         'STATE 6 n 3455 4299',
15114         'STATE 3 z 3385 3600',
15115         'STATE 2 s 3385 4300',
15116         'STATE 4 s 4302 4301',
15117         'STATE 4 s 3385 3455',
15118         'STATE 6 i 3385 4303',
15119         'STATE 3 f 3522 4304',
15120         'STATE 2 h 3399 4305',
15121         'STATE 1 d 3385 4306',
15122         'STATE 2 o 3399 4307',
15123         'STATE 2 c 3385 4308',
15124         'STATE 1 a 3385 3399',
15125         'STATE 6 r 4310 4309',
15126         'STATE 4 l 4311 3385',
15127         'STATE 3 v 3455 4312',
15128         'STATE 3 m 3389 4313',
15129         'STATE 2 r 3385 4314',
15130         'STATE 5 a 3399 3579',
15131         'STATE 4 q 4316 4315',
15132         'STATE 5 b 4318 4317',
15133         'STATE 4 v 3494 4319',
15134         'STATE 5 e 3385 4320',
15135         'STATE 5 t 3385 4321',
15136         'STATE 6 r 3455 4322',
15137         'STATE 5 u 4324 4323',
15138         'STATE 5 e 3393 4325',
15139         'STATE 6 a 4327 4326',
15140         'STATE 5 l 3444 4328',
15141         'STATE 6 e 3522 4329',
15142         'STATE 6 l 3494 4330',
15143         'STATE 4 p 4332 4331',
15144         'STATE 6 e 3385 3389',
15145         'STATE 6 m 3393 4333',
15146         'STATE 6 m 3385 3455',
15147         'STATE 5 e 3494 4334',
15148         'STATE 6 t 3455 4335',
15149         'STATE 5 o 4336 3385',
15150         'STATE 4 q 4338 4337',
15151         'STATE 5 r 3494 4339',
15152         'STATE 5 i 3455 4340',
15153         'STATE 4 c 3455 4341',
15154         'STATE 6 n 3455 4342',
15155         'STATE 4 s 3385 4343',
15156         'STATE 4 l 4345 4344',
15157         'STATE 3 c 4347 4346',
15158         'STATE 3 n 3444 3393',
15159         'STATE 2 t 3393 4348',
15160         'STATE 6 t 3943 3393',
15161         'STATE 2 a 4349 3399',
15162         'STATE 3 b 4350 3399',
15163         'STATE 3 p 3399 4351',
15164         'STATE 6 a 3385 3399',
15165         'STATE 3 c 3399 4352',
15166         'STATE 3 s 3385 4353',
15167         'STATE 6 l 4355 4354',
15168         'STATE 3 i 3399 4356',
15169         'STATE 1 a 3444 4357',
15170         'STATE 3 r 3524 3399',
15171         'STATE 2 n 3393 3399',
15172         'STATE 3 f 3399 4358',
15173         'STATE 4 y 3399 4359',
15174         'STATE 3 i 3399 4360',
15175         'STATE 3 c 3455 4361',
15176         'STATE 4 x 3385 4362',
15177         'STATE 3 p 3494 4363',
15178         'STATE 1 a 4365 4364',
15179         'STATE 2 a 4366 3399',
15180         'STATE 1 n 3444 4367',
15181         'STATE 1 l 3444 4368',
15182         'STATE 6 n 4370 4369',
15183         'STATE 6 c 4372 4371',
15184         'STATE 2 s 3385 4373',
15185         'STATE 3 u 4375 4374',
15186         'STATE 4 u 3399 4376',
15187         'STATE 5 h 4378 4377',
15188         'STATE 5 k 4379 3385',
15189         'STATE 5 x 4380 3399',
15190         'STATE 4 s 4382 4381',
15191         'STATE 5 l 3444 4383',
15192         'STATE 5 d 3393 4384',
15193         'STATE 3 n 3455 3399',
15194         'STATE 5 i 4386 4385',
15195         'STATE 5 e 3399 4387',
15196         'STATE 3 g 4389 4388',
15197         'STATE 5 e 4391 4390',
15198         'STATE 6 e 3385 3455',
15199         'STATE 6 e 4393 4392',
15200         'STATE 6 e 3455 4394',
15201         'STATE 2 r 4396 4395',
15202         'STATE 1 a 3522 3385',
15203         'STATE 5 z 4398 4397',
15204         'STATE 1 b 3393 3399',
15205         'STATE 6 y 3455 4399',
15206         'STATE 1 o 3385 3455',
15207         'STATE 2 e 3455 4400',
15208         'STATE 1 # 3385 4401',
15209         'STATE 3 l 3524 4402',
15210         'STATE 2 e 3385 4403',
15211         'STATE 1 e 3455 4404',
15212         'STATE 3 h 3522 3459',
15213         'STATE 1 a 3393 4405',
15214         'STATE 4 l 3455 4406',
15215         'STATE 1 i 4408 4407',
15216         'STATE 4 l 3455 3385',
15217         'STATE 1 l 3455 4409',
15218         'STATE 1 n 3455 4410',
15219         'STATE 4 t 3385 4411',
15220         'STATE 4 u 3444 4412',
15221         'STATE 3 s 3385 4413',
15222         'STATE 2 d 3385 4414',
15223         'STATE 6 i 3455 3385',
15224         'STATE 6 e 3385 3399',
15225         'STATE 2 i 3399 4415',
15226         'STATE 2 i 3522 4359',
15227         'STATE 2 q 3385 4416',
15228         'STATE 2 n 4418 4417',
15229         'STATE 3 c 4419 3455',
15230         'STATE 3 f 3385 3522',
15231         'STATE 3 r 4421 4420',
15232         'STATE 2 b 3522 4422',
15233         'STATE 2 n 4424 4423',
15234         'STATE 4 v 4426 4425',
15235         'STATE 6 a 3393 3494',
15236         'STATE 5 a 4428 4427',
15237         'STATE 6 l 3385 3522',
15238         'STATE 4 d 3385 4429',
15239         'STATE 5 u 3455 4430',
15240         'STATE 5 d 3522 4431',
15241         'STATE 6 a 3522 3385',
15242         'STATE 5 i 4433 4432',
15243         'STATE 4 g 4435 4434',
15244         'STATE 5 a 4437 4436',
15245         'STATE 3 b 3385 4438',
15246         'STATE 3 t 3385 4439',
15247         'STATE 6 a 3385 3393',
15248         'STATE 6 o 3393 4440',
15249         'STATE 5 p 4442 4441',
15250         'STATE 4 f 3455 4443',
15251         'STATE 5 r 4445 4444',
15252         'STATE 5 h 3385 4446',
15253         'STATE 6 l 4448 4447',
15254         'STATE 6 r 4450 4449',
15255         'STATE 6 n 3385 3389',
15256         'STATE 4 f 4452 4451',
15257         'STATE 6 i 3385 3494',
15258         'STATE 6 o 3393 3385',
15259         'STATE 6 n 3444 4453',
15260         'STATE 6 a 4455 4454',
15261         'STATE 6 m 3455 3444',
15262         'STATE 4 p 3385 3444',
15263         'STATE 6 # 3393 4456',
15264         'STATE 6 t 3385 3455',
15265         'STATE 3 h 3393 4457',
15266         'STATE 1 # 3399 3393',
15267         'STATE 5 l 3393 4458',
15268         'STATE 1 c 3399 4459',
15269         'STATE 6 a 3385 4460',
15270         'STATE 6 a 4461 3399',
15271         'STATE 3 g 3399 4097',
15272         'STATE 3 c 3385 4462',
15273         'STATE 3 p 4464 4463',
15274         'STATE 3 p 3385 3399',
15275         'STATE 4 i 3524 4465',
15276         'STATE 2 d 3444 4466',
15277         'STATE 3 b 4464 4467',
15278         'STATE 2 a 3385 3455',
15279         'STATE 2 e 3653 4468',
15280         'STATE 1 b 3455 4469',
15281         'STATE 4 z 3522 3385',
15282         'STATE 1 h 3494 4470',
15283         'STATE 1 # 4359 4471',
15284         'STATE 3 c 3385 3455',
15285         'STATE 1 d 3399 4472',
15286         'STATE 1 p 3444 3399',
15287         'STATE 1 y 3444 4473',
15288         'STATE 5 k 4475 4474',
15289         'STATE 4 m 4477 4476',
15290         'STATE 6 o 4479 4478',
15291         'STATE 4 t 3385 4480',
15292         'STATE 2 e 4481 3393',
15293         'STATE 4 u 3399 4482',
15294         'STATE 2 q 4483 3399',
15295         'STATE 4 v 4485 4484',
15296         'STATE 5 y 4487 4486',
15297         'STATE 4 s 3385 4488',
15298         'STATE 3 b 4490 4489',
15299         'PHONE ow1',
15300         'STATE 4 t 4492 4491',
15301         'STATE 2 a 4494 4493',
15302         'STATE 5 w 3399 4495',
15303         'STATE 2 c 3393 3882',
15304         'STATE 6 n 4497 4496',
15305         'STATE 6 a 4499 4498',
15306         'STATE 3 h 3385 4500',
15307         'STATE 5 e 3455 4501',
15308         'STATE 6 c 3385 4502',
15309         'STATE 5 a 4503 3385',
15310         'STATE 2 e 3455 4504',
15311         'STATE 2 s 4506 4505',
15312         'STATE 3 c 3455 4507',
15313         'STATE 6 y 3455 4508',
15314         'STATE 2 a 4510 4509',
15315         'STATE 3 d 3385 4511',
15316         'STATE 5 i 4513 4512',
15317         'STATE 6 o 3385 4514',
15318         'STATE 2 e 3455 4515',
15319         'STATE 3 c 3455 4516',
15320         'STATE 5 z 3522 3385',
15321         'STATE 3 r 3385 4517',
15322         'STATE 3 s 3455 4518',
15323         'STATE 1 a 3455 4519',
15324         'STATE 2 a 3393 4520',
15325         'STATE 6 o 3455 3399',
15326         'STATE 6 u 3385 3455',
15327         'STATE 2 s 3385 3455',
15328         'STATE 2 n 3385 4521',
15329         'STATE 2 t 4523 4522',
15330         'STATE 3 r 3385 4297',
15331         'STATE 3 k 3455 4524',
15332         'STATE 3 c 3385 4525',
15333         'STATE 1 v 4527 4526',
15334         'STATE 3 v 4529 4528',
15335         'STATE 3 r 3385 3399',
15336         'STATE 2 t 3385 4530',
15337         'STATE 6 o 3455 3385',
15338         'STATE 1 o 3455 3385',
15339         'STATE 3 f 3385 3455',
15340         'STATE 1 e 3389 4531',
15341         'STATE 3 r 3522 4532',
15342         'STATE 1 a 3455 4533',
15343         'STATE 3 t 3385 3455',
15344         'STATE 4 c 4535 4534',
15345         'STATE 6 r 3385 4536',
15346         'STATE 6 l 4538 4537',
15347         'STATE 6 n 3385 3393',
15348         'STATE 4 p 3385 3494',
15349         'STATE 5 i 3385 4539',
15350         'STATE 5 v 3522 3385',
15351         'STATE 5 a 4541 4540',
15352         'STATE 6 o 3393 4542',
15353         'STATE 4 c 4544 4543',
15354         'STATE 3 b 3494 4545',
15355         'STATE 5 o 4546 3385',
15356         'STATE 4 n 3393 4547',
15357         'STATE 6 u 4548 3385',
15358         'STATE 3 p 3385 4549',
15359         'STATE 5 n 4322 3385',
15360         'STATE 5 h 4551 4550',
15361         'STATE 6 a 3494 4552',
15362         'STATE 6 r 4554 4553',
15363         'STATE 5 a 3455 4555',
15364         'STATE 6 e 3455 4556',
15365         'STATE 5 k 3385 4557',
15366         'STATE 5 a 3385 3494',
15367         'STATE 5 a 3494 3385',
15368         'STATE 5 g 3522 4558',
15369         'STATE 5 o 3455 3522',
15370         'STATE 5 u 4560 4559',
15371         'STATE 5 r 3455 4561',
15372         'STATE 6 a 3444 4562',
15373         'STATE 4 b 3455 4563',
15374         'STATE 4 p 3455 3444',
15375         'STATE 6 b 3393 4564',
15376         'STATE 5 k 4566 4565',
15377         'STATE 1 # 3393 4567',
15378         'STATE 3 l 3399 4568',
15379         'STATE 6 o 4569 3399',
15380         'STATE 5 s 3399 4570',
15381         'STATE 6 t 3385 4571',
15382         'STATE 1 0 3385 4572',
15383         'STATE 1 e 3385 3399',
15384         'STATE 4 z 4574 4573',
15385         'STATE 1 c 3399 4575',
15386         'STATE 2 s 3399 4576',
15387         'STATE 3 j 3455 4577',
15388         'STATE 3 r 4579 4578',
15389         'STATE 2 a 3494 4580',
15390         'STATE 3 k 3455 4581',
15391         'STATE 1 n 3444 4582',
15392         'STATE 2 h 4584 4583',
15393         'STATE 2 e 4586 4585',
15394         'STATE 6 e 4587 3385',
15395         'STATE 5 e 4589 4588',
15396         'STATE 2 p 3455 4590',
15397         'STATE 4 d 4592 4591',
15398         'STATE 2 i 3444 4593',
15399         'STATE 4 v 3494 4594',
15400         'STATE 4 d 3393 3455',
15401         'STATE 4 y 4596 4595',
15402         'STATE 4 b 3455 4597',
15403         'STATE 6 m 3455 4598',
15404         'STATE 5 i 3393 3494',
15405         'STATE 3 o 3399 4599',
15406         'STATE 3 l 3399 4600',
15407         'STATE 1 # 3393 4601',
15408         'STATE 2 l 3494 4602',
15409         'STATE 2 e 3522 4603',
15410         'STATE 4 y 3399 4604',
15411         'STATE 3 l 3393 4605',
15412         'STATE 1 a 3524 4606',
15413         'STATE 3 n 3524 3393',
15414         'STATE 3 c 3399 4607',
15415         'STATE 3 o 4609 4608',
15416         'STATE 2 i 3399 4610',
15417         'STATE 2 i 4612 4611',
15418         'STATE 2 o 3385 3393',
15419         'STATE 1 # 3399 4613',
15420         'STATE 5 a 3455 4614',
15421         'STATE 5 o 3522 4615',
15422         'STATE 2 r 3385 4616',
15423         'STATE 2 a 3455 4001',
15424         'STATE 6 s 3385 4617',
15425         'STATE 1 # 3385 4618',
15426         'STATE 3 b 3455 4619',
15427         'STATE 3 c 3455 3385',
15428         'STATE 1 i 3455 4620',
15429         'STATE 3 v 3455 3385',
15430         'STATE 3 r 4622 4621',
15431         'STATE 5 n 4624 4623',
15432         'STATE 6 n 3455 4625',
15433         'STATE 1 l 3522 4626',
15434         'STATE 3 r 3385 4627',
15435         'STATE 2 o 3455 4628',
15436         'STATE 3 h 3455 3393',
15437         'STATE 2 r 3385 4629',
15438         'STATE 6 r 4631 4630',
15439         'STATE 1 e 3393 4632',
15440         'STATE 3 p 3385 4420',
15441         'STATE 3 c 4178 4633',
15442         'STATE 1 s 3385 3455',
15443         'STATE 4 l 4635 4634',
15444         'STATE 3 r 4636 3455',
15445         'STATE 2 s 4638 4637',
15446         'STATE 4 t 3385 3494',
15447         'STATE 1 f 3455 4639',
15448         'STATE 2 l 3385 3455',
15449         'STATE 1 s 3455 4640',
15450         'STATE 2 e 3455 4641',
15451         'STATE 2 l 3522 4642',
15452         'STATE 1 r 4643 3455',
15453         'STATE 4 g 4645 4644',
15454         'STATE 5 o 3494 4646',
15455         'STATE 5 e 4648 4647',
15456         'STATE 5 e 3385 4649',
15457         'STATE 5 p 3522 4650',
15458         'STATE 5 c 4652 4651',
15459         'STATE 5 e 4654 4653',
15460         'STATE 3 m 4656 4655',
15461         'STATE 6 a 4658 4657',
15462         'STATE 4 q 4660 4659',
15463         'STATE 6 r 3494 3385',
15464         'PHONE ey',
15465         'STATE 4 n 3524 3385',
15466         'STATE 3 l 3393 4661',
15467         'STATE 4 n 4662 3385',
15468         'STATE 3 c 3522 4663',
15469         'STATE 6 a 3385 4664',
15470         'STATE 6 i 3494 4665',
15471         'STATE 6 r 3494 4338',
15472         'STATE 5 t 4667 4666',
15473         'STATE 4 t 3455 4668',
15474         'STATE 5 o 3455 4669',
15475         'STATE 6 i 3455 3444',
15476         'STATE 6 d 3494 4670',
15477         'STATE 5 a 3385 4671',
15478         'STATE 5 o 4673 4672',
15479         'STATE 6 s 3393 4674',
15480         'STATE 6 s 3455 4675',
15481         'STATE 5 y 3444 4676',
15482         'STATE 4 p 3455 4677',
15483         'STATE 6 p 3393 4678',
15484         'STATE 5 v 4680 4679',
15485         'STATE 3 p 3393 4681',
15486         'STATE 5 t 3444 3393',
15487         'STATE 3 v 4245 3399',
15488         'STATE 2 m 3399 3385',
15489         'STATE 5 v 3399 4682',
15490         'STATE 6 n 4683 3385',
15491         'STATE 3 m 3385 4684',
15492         'STATE 4 m 4686 4685',
15493         'STATE 1 # 3385 4687',
15494         'STATE 2 a 3393 4688',
15495         'STATE 3 r 4689 3399',
15496         'STATE 3 r 4691 4690',
15497         'STATE 2 r 4693 4692',
15498         'STATE 2 r 3455 3385',
15499         'STATE 1 o 3494 4694',
15500         'STATE 1 k 3455 4695',
15501         'STATE 1 i 3444 3399',
15502         'STATE 1 o 3444 4696',
15503         'STATE 1 s 3444 4697',
15504         'STATE 2 n 4699 4698',
15505         'STATE 3 l 4701 4700',
15506         'STATE 3 n 4703 4702',
15507         'STATE 4 c 4705 4704',
15508         'STATE 2 p 3455 4706',
15509         'STATE 2 c 4708 4707',
15510         'STATE 2 i 3399 4709',
15511         'STATE 6 t 3728 4710',
15512         'STATE 1 s 3385 3393',
15513         'STATE 3 n 3455 4711',
15514         'STATE 3 y 3399 4712',
15515         'STATE 5 e 3399 3524',
15516         'STATE 4 s 4545 3399',
15517         'STATE 5 i 4714 4713',
15518         'STATE 3 u 4716 4715',
15519         'STATE 1 s 3399 3455',
15520         'STATE 2 a 3455 3522',
15521         'STATE 1 # 3385 4717',
15522         'STATE 2 r 3522 3385',
15523         'STATE 3 u 3399 3393',
15524         'STATE 2 c 3393 4718',
15525         'STATE 1 u 3524 3393',
15526         'STATE 2 c 4720 4719',
15527         'STATE 6 p 3385 4721',
15528         'STATE 5 e 3455 3399',
15529         'STATE 3 v 3399 4722',
15530         'STATE 6 o 3393 4723',
15531         'STATE 1 l 3399 4724',
15532         'STATE 3 n 3455 3385',
15533         'STATE 6 e 3455 4725',
15534         'STATE 6 s 3455 4726',
15535         'STATE 2 a 3385 4727',
15536         'STATE 6 y 3455 3385',
15537         'STATE 6 i 3385 4728',
15538         'STATE 1 # 3385 4729',
15539         'STATE 1 k 3455 4730',
15540         'STATE 3 t 3524 3455',
15541         'STATE 1 u 3455 4731',
15542         'STATE 5 k 4733 4732',
15543         'STATE 6 e 3475 3385',
15544         'STATE 6 c 3385 4734',
15545         'STATE 6 i 3385 4735',
15546         'STATE 1 e 3455 4736',
15547         'STATE 5 o 3455 4737',
15548         'STATE 2 h 3522 4738',
15549         'STATE 3 o 3399 4739',
15550         'STATE 1 i 3455 3444',
15551         'STATE 3 l 3393 4740',
15552         'STATE 3 r 3385 4741',
15553         'STATE 4 m 3455 4742',
15554         'STATE 3 t 3455 4743',
15555         'STATE 2 t 3455 4744',
15556         'STATE 6 s 4746 4745',
15557         'STATE 3 t 4747 3385',
15558         'STATE 1 h 3399 4748',
15559         'STATE 3 v 3385 4749',
15560         'STATE 2 o 3455 3385',
15561         'STATE 1 o 3522 4750',
15562         'STATE 3 d 3455 3385',
15563         'STATE 5 a 4297 4751',
15564         'STATE 5 g 3385 4752',
15565         'STATE 5 l 3494 4753',
15566         'STATE 5 i 4755 4754',
15567         'STATE 6 n 3393 3385',
15568         'STATE 5 o 3389 4756',
15569         'STATE 5 u 3385 4757',
15570         'STATE 5 t 4759 4758',
15571         'STATE 6 y 3455 3522',
15572         'STATE 5 o 4761 4760',
15573         'STATE 6 r 4763 4762',
15574         'STATE 4 l 4765 4764',
15575         'STATE 6 r 3455 4766',
15576         'STATE 6 u 3393 4767',
15577         'STATE 4 d 3393 4768',
15578         'STATE 6 c 3455 4769',
15579         'STATE 3 s 3393 4435',
15580         'STATE 4 d 3524 4770',
15581         'STATE 3 v 3522 3385',
15582         'STATE 4 s 3385 4771',
15583         'STATE 6 o 4773 4772',
15584         'STATE 6 a 3494 3522',
15585         'STATE 4 s 4775 4774',
15586         'STATE 6 a 3444 3385',
15587         'STATE 4 s 3455 4776',
15588         'STATE 5 u 3385 3455',
15589         'STATE 5 l 3494 4777',
15590         'STATE 5 l 3385 4778',
15591         'STATE 5 r 4780 4779',
15592         'STATE 6 s 3393 4781',
15593         'STATE 6 b 3444 4782',
15594         'STATE 5 i 4784 4783',
15595         'STATE 6 u 4786 4785',
15596         'STATE 6 e 3455 4787',
15597         'STATE 4 p 4789 4788',
15598         'STATE 2 c 4791 4790',
15599         'STATE 1 e 3385 3393',
15600         'STATE 3 r 3393 4792',
15601         'STATE 3 v 3399 4793',
15602         'STATE 3 b 3385 3389',
15603         'STATE 3 h 3385 4794',
15604         'STATE 4 u 3399 4795',
15605         'STATE 1 # 3385 3455',
15606         'STATE 1 i 3522 4796',
15607         'STATE 1 # 3393 4797',
15608         'STATE 2 f 3455 4798',
15609         'STATE 2 l 3399 4799',
15610         'STATE 2 a 3399 4800',
15611         'STATE 1 e 3455 4801',
15612         'STATE 3 n 3385 3522',
15613         'STATE 2 i 3494 4802',
15614         'STATE 2 u 4803 3455',
15615         'STATE 1 s 4804 3393',
15616         'STATE 1 c 3444 3393',
15617         'STATE 4 t 4806 4805',
15618         'STATE 5 r 3455 4807',
15619         'STATE 5 e 4809 4808',
15620         'STATE 6 i 3385 3455',
15621         'STATE 3 d 3494 3385',
15622         'STATE 1 e 3494 3522',
15623         'STATE 4 t 4811 4810',
15624         'STATE 2 o 3385 4812',
15625         'STATE 4 s 3444 3455',
15626         'STATE 2 e 4813 3399',
15627         'STATE 3 r 3455 3399',
15628         'STATE 2 a 4815 4814',
15629         'STATE 1 n 3399 4816',
15630         'STATE 4 m 3385 4817',
15631         'STATE 4 x 4819 4818',
15632         'STATE 4 c 4821 4820',
15633         'STATE 6 e 3522 4822',
15634         'STATE 5 z 4824 4823',
15635         'STATE 5 a 3385 3399',
15636         'STATE 1 e 3385 4825',
15637         'STATE 3 r 3444 3393',
15638         'STATE 6 t 3399 4826',
15639         'STATE 1 n 3399 3444',
15640         'STATE 2 s 4686 4827',
15641         'STATE 1 # 3385 4828',
15642         'STATE 1 f 3399 4829',
15643         'STATE 6 n 3399 4830',
15644         'STATE 6 n 3455 4831',
15645         'STATE 5 i 3522 4832',
15646         'STATE 2 n 3385 3455',
15647         'STATE 1 a 4833 3385',
15648         'STATE 3 v 4803 3385',
15649         'STATE 2 o 3455 4834',
15650         'STATE 1 o 3455 4835',
15651         'STATE 5 g 4837 4836',
15652         'STATE 1 o 3455 4838',
15653         'STATE 6 e 3393 4839',
15654         'STATE 3 l 3522 3385',
15655         'STATE 1 n 3455 4840',
15656         'STATE 2 a 4701 4841',
15657         'STATE 2 a 4842 3385',
15658         'STATE 1 o 3455 4843',
15659         'STATE 3 r 3393 3444',
15660         'STATE 3 s 3385 4844',
15661         'STATE 4 t 4846 4845',
15662         'STATE 3 p 3385 3455',
15663         'STATE 2 p 3385 4847',
15664         'STATE 1 t 3455 3385',
15665         'STATE 4 t 3455 3385',
15666         'STATE 6 e 3522 3385',
15667         'STATE 6 r 4849 4848',
15668         'STATE 1 a 4851 4850',
15669         'STATE 2 p 3522 4852',
15670         'STATE 4 s 4854 4853',
15671         'STATE 5 l 3385 4855',
15672         'STATE 5 c 3494 3385',
15673         'STATE 6 n 3385 4856',
15674         'STATE 6 l 3393 3385',
15675         'STATE 6 o 3389 4857',
15676         'STATE 5 i 3522 3385',
15677         'STATE 5 d 4859 4858',
15678         'STATE 6 a 3522 4860',
15679         'STATE 5 r 4862 4861',
15680         'STATE 4 g 4274 4863',
15681         'STATE 3 t 4865 4864',
15682         'STATE 3 g 3385 4866',
15683         'STATE 3 p 3385 4867',
15684         'STATE 6 n 3385 4868',
15685         'STATE 4 g 3385 4869',
15686         'STATE 3 b 4871 4870',
15687         'STATE 4 n 3393 3385',
15688         'STATE 3 s 3385 4872',
15689         'STATE 3 m 3385 4873',
15690         'STATE 4 t 3385 3522',
15691         'STATE 6 r 4773 4874',
15692         'STATE 5 t 3494 3385',
15693         'STATE 5 u 4876 4875',
15694         'STATE 5 e 3522 4877',
15695         'STATE 5 a 3455 3385',
15696         'STATE 5 r 3494 4878',
15697         'STATE 5 o 3385 4879',
15698         'STATE 4 d 4881 4880',
15699         'STATE 6 o 4883 4882',
15700         'STATE 4 s 4885 4884',
15701         'STATE 4 d 3455 4886',
15702         'STATE 5 l 3455 4887',
15703         'STATE 6 n 3455 3444',
15704         'STATE 6 v 3494 4888',
15705         'STATE 5 o 3494 3455',
15706         'STATE 6 m 3455 4889',
15707         'STATE 6 c 3455 4890',
15708         'STATE 6 c 3393 3444',
15709         'STATE 2 r 4892 4891',
15710         'STATE 5 t 3444 4893',
15711         'STATE 3 n 3393 4894',
15712         'STATE 3 h 3399 4895',
15713         'STATE 1 # 3385 4896',
15714         'STATE 3 o 3399 4897',
15715         'STATE 3 u 3385 3522',
15716         'STATE 3 n 3444 4898',
15717         'STATE 2 d 3455 3399',
15718         'STATE 1 i 3399 4899',
15719         'STATE 2 d 3524 3399',
15720         'STATE 1 i 3385 4900',
15721         'STATE 2 u 3494 4901',
15722         'STATE 1 r 3455 3385',
15723         'STATE 2 l 3393 3444',
15724         'STATE 4 d 4903 4902',
15725         'STATE 5 e 4905 4904',
15726         'STATE 3 t 4907 4906',
15727         'STATE 4 u 3399 4908',
15728         'STATE 4 v 3494 4909',
15729         'STATE 3 t 4911 4910',
15730         'STATE 5 a 3522 3399',
15731         'STATE 5 o 4913 4912',
15732         'STATE 5 a 3399 3455',
15733         'STATE 6 l 4915 4914',
15734         'STATE 3 t 3455 3399',
15735         'STATE 2 m 3385 4916',
15736         'STATE 3 m 3385 4917',
15737         'STATE 5 e 4919 4918',
15738         'STATE 3 n 3494 4776',
15739         'STATE 3 r 4920 3385',
15740         'STATE 5 e 3455 4921',
15741         'STATE 6 c 3455 4922',
15742         'STATE 4 d 4924 4923',
15743         'STATE 1 # 3385 3522',
15744         'STATE 2 h 3385 4925',
15745         'STATE 5 n 3444 4926',
15746         'STATE 6 h 3385 4927',
15747         'STATE 5 a 4928 3455',
15748         'STATE 6 c 4930 4929',
15749         'STATE 3 d 3385 3399',
15750         'STATE 1 i 3385 4931',
15751         'STATE 1 e 3522 3455',
15752         'STATE 6 a 3385 3455',
15753         'STATE 2 e 3455 4932',
15754         'STATE 1 e 3455 3524',
15755         'STATE 5 u 4934 4933',
15756         'STATE 6 t 3385 4935',
15757         'STATE 6 e 3385 4936',
15758         'STATE 6 a 3393 4937',
15759         'STATE 2 i 3455 4938',
15760         'STATE 5 a 3455 4939',
15761         'STATE 3 m 3385 4686',
15762         'STATE 3 v 3455 3399',
15763         'STATE 3 l 3385 4420',
15764         'STATE 4 d 4930 4343',
15765         'STATE 3 s 3385 3455',
15766         'STATE 1 n 3455 4940',
15767         'STATE 1 c 3522 4941',
15768         'STATE 1 e 3385 4942',
15769         'STATE 1 l 4944 4943',
15770         'STATE 2 c 3385 4945',
15771         'STATE 1 e 3522 4946',
15772         'STATE 4 l 4948 4947',
15773         'STATE 6 a 4950 4949',
15774         'STATE 6 e 3385 4951',
15775         'STATE 5 a 3494 4952',
15776         'STATE 6 s 3385 4953',
15777         'STATE 5 o 3455 4954',
15778         'STATE 6 a 3522 4955',
15779         'STATE 6 h 3522 4956',
15780         'STATE 3 o 3399 4957',
15781         'STATE 4 t 4959 4958',
15782         'STATE 4 c 4961 4960',
15783         'STATE 4 v 4963 4962',
15784         'STATE 4 l 3385 4964',
15785         'STATE 3 p 4966 4965',
15786         'STATE 4 c 3494 4967',
15787         'STATE 3 v 3522 4968',
15788         'STATE 6 n 3385 4969',
15789         'STATE 4 v 3385 4970',
15790         'STATE 6 e 3455 4971',
15791         'STATE 3 l 3522 4972',
15792         'STATE 4 t 3385 3524',
15793         'STATE 5 t 3494 4973',
15794         'STATE 5 a 4975 4974',
15795         'STATE 4 b 3385 3455',
15796         'STATE 6 e 3455 4976',
15797         'STATE 5 a 3494 4977',
15798         'STATE 5 e 3385 4978',
15799         'STATE 4 m 4881 4979',
15800         'STATE 5 i 4980 3385',
15801         'STATE 4 p 4981 3444',
15802         'STATE 4 t 3385 4982',
15803         'STATE 4 b 3444 4983',
15804         'STATE 6 u 3444 4984',
15805         'STATE 6 m 3455 4985',
15806         'STATE 6 r 3455 4986',
15807         'STATE 6 r 3455 4987',
15808         'STATE 4 l 4989 4988',
15809         'STATE 4 c 3444 4990',
15810         'STATE 2 l 3399 4991',
15811         'STATE 5 l 3393 3444',
15812         'STATE 1 a 3399 4992',
15813         'STATE 6 # 3399 3393',
15814         'STATE 3 g 3399 4993',
15815         'STATE 6 c 3399 3385',
15816         'STATE 3 u 3399 4994',
15817         'STATE 2 r 3393 4995',
15818         'STATE 2 n 3399 4996',
15819         'STATE 2 m 3455 4997',
15820         'STATE 1 r 3494 4998',
15821         'STATE 5 c 3385 4999',
15822         'STATE 5 g 5001 5000',
15823         'STATE 6 r 3455 5002',
15824         'STATE 3 m 3455 5003',
15825         'STATE 4 b 4274 5004',
15826         'STATE 5 p 3385 5005',
15827         'STATE 3 n 5007 5006',
15828         'STATE 6 r 3444 5008',
15829         'STATE 2 e 3455 5009',
15830         'STATE 5 a 3522 3455',
15831         'STATE 5 h 3455 3399',
15832         'STATE 1 c 3385 3455',
15833         'STATE 4 f 5011 5010',
15834         'STATE 2 e 3385 4274',
15835         'STATE 3 p 3393 5012',
15836         'STATE 3 d 3385 5013',
15837         'STATE 2 a 5015 5014',
15838         'STATE 4 s 3399 5016',
15839         'STATE 6 r 5018 5017',
15840         'STATE 6 n 3393 5019',
15841         'STATE 4 s 3455 5020',
15842         'STATE 4 j 3524 5021',
15843         'STATE 5 i 3385 5022',
15844         'STATE 3 n 3385 5023',
15845         'STATE 1 g 3399 3444',
15846         'STATE 6 d 3455 5024',
15847         'STATE 2 o 3399 3455',
15848         'STATE 1 # 5026 5025',
15849         'STATE 3 r 3455 3385',
15850         'STATE 1 e 3385 5027',
15851         'STATE 1 r 3455 5028',
15852         'STATE 5 o 3455 5029',
15853         'STATE 3 t 3385 4727',
15854         'STATE 1 e 3494 5030',
15855         'STATE 2 o 3385 5027',
15856         'STATE 2 u 3455 5031',
15857         'STATE 1 i 3455 3385',
15858         'STATE 2 u 3522 5032',
15859         'STATE 2 g 3385 5033',
15860         'STATE 2 l 3399 5034',
15861         'STATE 2 c 3455 5035',
15862         'STATE 2 m 3522 5036',
15863         'STATE 3 m 3385 3522',
15864         'STATE 6 i 4579 5037',
15865         'STATE 3 h 3522 5038',
15866         'STATE 5 f 5037 5039',
15867         'STATE 5 i 5041 5040',
15868         'STATE 5 c 5043 5042',
15869         'STATE 5 t 3455 5044',
15870         'STATE 5 e 3385 3393',
15871         'STATE 6 l 3494 3385',
15872         'STATE 6 g 3385 5045',
15873         'STATE 5 a 3522 5046',
15874         'STATE 6 o 3522 3385',
15875         'STATE 6 i 3522 5047',
15876         'STATE 6 a 5049 5048',
15877         'STATE 4 h 5051 5050',
15878         'STATE 3 b 3455 5052',
15879         'STATE 3 h 5054 5053',
15880         'STATE 6 m 3494 3385',
15881         'STATE 4 g 5056 5055',
15882         'STATE 6 n 3385 5057',
15883         'STATE 4 n 3385 3455',
15884         'STATE 4 d 3385 5058',
15885         'STATE 4 t 3393 3385',
15886         'STATE 6 l 5060 5059',
15887         'STATE 6 g 3455 5061',
15888         'STATE 6 m 3385 5062',
15889         'STATE 4 t 5064 5063',
15890         'STATE 6 n 3385 5065',
15891         'STATE 6 s 3455 5066',
15892         'STATE 6 h 3494 5067',
15893         'STATE 5 e 5069 5068',
15894         'STATE 6 t 3455 5070',
15895         'STATE 5 i 5071 4776',
15896         'STATE 6 n 3444 3385',
15897         'STATE 5 b 3522 3385',
15898         'STATE 5 i 5073 5072',
15899         'STATE 6 s 3444 3385',
15900         'STATE 6 e 3385 3444',
15901         'STATE 4 p 3444 3385',
15902         'STATE 4 p 3455 5074',
15903         'STATE 6 l 3444 3455',
15904         'STATE 6 i 3444 5075',
15905         'STATE 5 u 3455 3385',
15906         'STATE 6 i 5076 3385',
15907         'STATE 4 m 3385 5077',
15908         'STATE 6 n 3455 3385',
15909         'STATE 6 t 3393 3444',
15910         'STATE 3 n 3399 5078',
15911         'STATE 6 s 3385 3393',
15912         'STATE 3 b 3399 5079',
15913         'STATE 4 c 5081 5080',
15914         'STATE 1 n 3444 5082',
15915         'STATE 2 a 5083 3399',
15916         'STATE 2 a 3385 5084',
15917         'STATE 3 b 3494 3522',
15918         'STATE 6 t 5086 5085',
15919         'STATE 6 y 3455 5087',
15920         'STATE 1 o 3494 3385',
15921         'STATE 3 k 3455 5088',
15922         'STATE 3 k 3455 5089',
15923         'STATE 3 d 5091 5090',
15924         'STATE 1 o 3522 3455',
15925         'STATE 1 r 5093 5092',
15926         'STATE 6 t 3494 5094',
15927         'STATE 6 d 3393 3455',
15928         'STATE 4 s 5096 5095',
15929         'STATE 3 s 3385 5097',
15930         'STATE 2 e 3455 5098',
15931         'STATE 3 c 3393 3455',
15932         'STATE 3 l 3455 3393',
15933         'STATE 2 i 5100 5099',
15934         'STATE 5 o 3399 5101',
15935         'STATE 6 s 3393 5102',
15936         'STATE 6 n 5104 5103',
15937         'STATE 4 p 3444 5105',
15938         'STATE 6 u 3494 3444',
15939         'STATE 4 c 3455 5106',
15940         'STATE 5 a 5108 5107',
15941         'STATE 5 o 3524 5109',
15942         'STATE 2 c 3385 3494',
15943         'STATE 5 e 5111 5110',
15944         'STATE 6 n 5113 5112',
15945         'STATE 3 m 3522 5114',
15946         'STATE 6 o 3385 3455',
15947         'STATE 3 s 3455 5115',
15948         'STATE 3 u 3399 5116',
15949         'STATE 6 e 3455 5117',
15950         'STATE 2 l 3455 5118',
15951         'STATE 5 h 3455 3385',
15952         'STATE 2 d 3385 3455',
15953         'STATE 2 q 3385 5119',
15954         'STATE 2 e 3455 3399',
15955         'STATE 2 a 5121 5120',
15956         'STATE 6 e 3455 3385',
15957         'STATE 1 u 3455 5122',
15958         'STATE 6 l 3385 5123',
15959         'STATE 5 u 3455 5124',
15960         'STATE 6 a 3455 5125',
15961         'STATE 6 o 3385 5126',
15962         'STATE 6 h 3385 5127',
15963         'STATE 5 c 3385 5128',
15964         'STATE 5 m 3385 5129',
15965         'STATE 6 o 5131 5130',
15966         'STATE 6 r 3522 4955',
15967         'STATE 4 n 5133 5132',
15968         'STATE 3 s 5134 3385',
15969         'STATE 4 d 5136 5135',
15970         'STATE 6 a 3524 3385',
15971         'STATE 6 o 3385 5137',
15972         'STATE 6 s 5139 5138',
15973         'STATE 6 r 3385 5140',
15974         'STATE 6 o 3393 5141',
15975         'STATE 3 b 3494 3385',
15976         'STATE 6 l 3385 5142',
15977         'STATE 3 f 3393 5143',
15978         'STATE 4 p 3385 5144',
15979         'STATE 4 g 3393 5145',
15980         'STATE 3 b 3455 4045',
15981         'STATE 6 c 3385 5146',
15982         'STATE 4 g 5064 5147',
15983         'STATE 6 t 3455 3385',
15984         'STATE 6 s 3385 5148',
15985         'STATE 6 d 3455 3385',
15986         'STATE 5 c 3494 5149',
15987         'STATE 5 o 5151 5150',
15988         'STATE 4 t 3455 5152',
15989         'STATE 4 t 3455 5153',
15990         'STATE 6 g 3455 3385',
15991         'STATE 4 s 5155 5154',
15992         'STATE 4 s 5157 5156',
15993         'STATE 4 m 3455 5158',
15994         'STATE 4 p 5160 5159',
15995         'STATE 5 t 3385 3494',
15996         'STATE 6 p 3393 5161',
15997         'STATE 1 r 3393 5162',
15998         'STATE 3 f 3399 5163',
15999         'STATE 2 r 3385 5164',
16000         'STATE 2 a 3494 4824',
16001         'STATE 2 o 3444 5165',
16002         'STATE 3 l 5166 3399',
16003         'STATE 2 i 3963 5167',
16004         'STATE 4 g 5169 5168',
16005         'STATE 5 h 5171 5170',
16006         'STATE 1 s 3385 5172',
16007         'STATE 6 e 5174 5173',
16008         'STATE 2 p 5176 5175',
16009         'STATE 1 u 5178 5177',
16010         'STATE 1 a 3455 4701',
16011         'STATE 3 g 3455 5179',
16012         'STATE 4 m 3385 5180',
16013         'STATE 5 r 3455 4776',
16014         'STATE 4 b 3399 5181',
16015         'STATE 3 l 3399 3455',
16016         'STATE 3 r 5183 5182',
16017         'STATE 6 n 3399 5096',
16018         'STATE 4 q 5185 5184',
16019         'STATE 3 n 5186 5113',
16020         'STATE 3 r 3522 5187',
16021         'STATE 6 r 5189 5188',
16022         'STATE 4 p 5191 5190',
16023         'STATE 4 s 3385 3444',
16024         'STATE 4 f 3385 5192',
16025         'STATE 4 d 3393 4992',
16026         'STATE 5 o 5194 5193',
16027         'STATE 4 m 5196 5195',
16028         'STATE 3 r 3385 5197',
16029         'STATE 5 o 3455 5198',
16030         'STATE 3 c 3385 5199',
16031         'STATE 2 a 3455 3579',
16032         'STATE 3 c 3399 3455',
16033         'STATE 3 r 3455 5200',
16034         'STATE 2 n 3455 5201',
16035         'STATE 5 h 3455 5202',
16036         'STATE 3 s 3455 5203',
16037         'STATE 6 t 3385 5204',
16038         'STATE 3 t 3385 5205',
16039         'STATE 6 a 5207 5206',
16040         'STATE 6 i 5209 5208',
16041         'STATE 1 r 3455 3522',
16042         'STATE 5 h 3385 5210',
16043         'STATE 5 o 3455 5211',
16044         'STATE 6 m 3455 5212',
16045         'STATE 5 s 3385 5213',
16046         'STATE 6 o 3385 3522',
16047         'STATE 5 p 3522 3385',
16048         'STATE 5 i 5215 5214',
16049         'STATE 5 l 5217 5216',
16050         'STATE 5 f 3522 5218',
16051         'STATE 6 u 5219 3385',
16052         'STATE 3 m 5221 5220',
16053         'STATE 5 s 3522 3385',
16054         'STATE 4 n 3385 5222',
16055         'STATE 3 p 4545 4701',
16056         'STATE 6 u 3522 3385',
16057         'STATE 6 l 3385 5223',
16058         'STATE 4 l 3522 3393',
16059         'STATE 6 t 3385 3393',
16060         'STATE 3 b 5225 5224',
16061         'STATE 3 l 3385 3494',
16062         'STATE 4 v 3385 5226',
16063         'STATE 6 v 5228 5227',
16064         'STATE 4 f 3455 5229',
16065         'STATE 6 p 3385 5230',
16066         'STATE 3 v 3385 5231',
16067         'STATE 6 t 3455 5232',
16068         'STATE 6 n 3494 3385',
16069         'STATE 4 n 3385 5233',
16070         'STATE 4 n 3455 5234',
16071         'STATE 4 n 3389 4876',
16072         'STATE 4 b 3455 3385',
16073         'STATE 4 o 3444 5235',
16074         'STATE 6 o 3455 5236',
16075         'STATE 4 w 3444 5237',
16076         'STATE 6 s 3455 5238',
16077         'STATE 4 d 3455 3444',
16078         'STATE 4 s 4090 3455',
16079         'STATE 6 t 3385 3444',
16080         'STATE 6 s 3393 5239',
16081         'STATE 2 i 3399 5240',
16082         'STATE 5 n 3385 3399',
16083         'STATE 2 p 3385 5241',
16084         'STATE 3 h 3393 3444',
16085         'STATE 1 r 3522 3399',
16086         'STATE 3 d 3385 5242',
16087         'STATE 4 v 5244 5243',
16088         'STATE 5 a 5246 5245',
16089         'STATE 3 s 5248 5247',
16090         'STATE 2 b 3494 5249',
16091         'STATE 6 w 3399 5250',
16092         'STATE 1 e 5252 5251',
16093         'STATE 5 h 3385 5253',
16094         'STATE 6 r 5255 5254',
16095         'STATE 3 l 3393 3455',
16096         'STATE 4 f 3399 5256',
16097         'STATE 6 r 3455 5257',
16098         'STATE 1 v 3494 5258',
16099         'STATE 5 o 3385 3455',
16100         'STATE 4 h 3399 5259',
16101         'STATE 6 n 5261 5260',
16102         'STATE 2 t 3385 4727',
16103         'STATE 5 a 5263 5262',
16104         'STATE 2 f 3393 3494',
16105         'STATE 4 f 3455 3385',
16106         'STATE 3 l 4545 5264',
16107         'STATE 4 v 5266 5265',
16108         'STATE 2 f 3385 5267',
16109         'STATE 6 d 5269 5268',
16110         'STATE 5 a 3444 3385',
16111         'STATE 4 s 3455 3444',
16112         'STATE 5 i 3385 5270',
16113         'STATE 3 r 3385 5271',
16114         'STATE 4 b 3393 5272',
16115         'STATE 3 n 3455 5273',
16116         'STATE 2 a 3524 5271',
16117         'STATE 5 k 3385 5274',
16118         'STATE 2 r 3385 5275',
16119         'STATE 6 n 5276 3399',
16120         'STATE 2 p 3455 5277',
16121         'STATE 2 o 3455 5278',
16122         'STATE 6 a 3524 3455',
16123         'STATE 6 s 3385 3455',
16124         'STATE 3 d 3455 5279',
16125         'STATE 2 o 5280 3385',
16126         'STATE 3 t 3455 5281',
16127         'STATE 3 m 3385 5282',
16128         'STATE 1 v 3455 3522',
16129         'STATE 4 d 3385 5283',
16130         'STATE 5 l 3385 5284',
16131         'STATE 6 z 3389 5285',
16132         'STATE 5 t 3385 5286',
16133         'STATE 6 t 3385 5287',
16134         'STATE 6 n 3385 3522',
16135         'STATE 5 r 3522 5288',
16136         'STATE 6 a 3455 3522',
16137         'STATE 5 j 3522 5289',
16138         'STATE 3 s 3494 3385',
16139         'STATE 3 z 3385 5290',
16140         'STATE 6 e 3385 5291',
16141         'STATE 3 b 3455 5292',
16142         'STATE 4 m 5294 5293',
16143         'STATE 4 h 3393 5295',
16144         'STATE 4 n 3385 5296',
16145         'STATE 4 m 3385 5297',
16146         'STATE 4 m 5299 5298',
16147         'STATE 4 h 3455 4545',
16148         'STATE 4 v 4545 3455',
16149         'STATE 4 t 5301 5300',
16150         'STATE 6 l 3522 5302',
16151         'STATE 4 n 3455 3385',
16152         'STATE 4 d 3385 5303',
16153         'STATE 6 n 5304 4746',
16154         'STATE 5 l 5306 5305',
16155         'STATE 6 i 5308 5307',
16156         'STATE 4 t 5310 5309',
16157         'STATE 6 g 3385 3455',
16158         'STATE 6 n 5311 3444',
16159         'STATE 1 o 3399 5312',
16160         'STATE 1 n 5314 5313',
16161         'STATE 1 a 3455 5315',
16162         'STATE 4 m 5317 5316',
16163         'STATE 5 a 4545 5318',
16164         'STATE 3 r 5320 5319',
16165         'STATE 6 l 3393 3494',
16166         'STATE 2 g 3455 5321',
16167         'STATE 1 e 3455 3494',
16168         'STATE 2 k 3494 3385',
16169         'STATE 6 s 3393 5322',
16170         'STATE 5 c 3385 5323',
16171         'STATE 5 r 3455 3385',
16172         'STATE 3 t 3522 3399',
16173         'STATE 6 d 3455 3399',
16174         'STATE 2 a 3455 3399',
16175         'STATE 5 u 3455 5324',
16176         'STATE 4 c 3385 3444',
16177         'STATE 4 g 5326 5325',
16178         'STATE 2 c 3455 5327',
16179         'STATE 4 s 5329 5328',
16180         'STATE 4 t 3455 5330',
16181         'STATE 2 o 5332 5331',
16182         'STATE 3 a 3399 5333',
16183         'STATE 3 n 3455 5334',
16184         'STATE 4 d 4648 3385',
16185         'STATE 6 n 5335 3393',
16186         'STATE 4 v 3385 5336',
16187         'STATE 5 e 3393 5337',
16188         'STATE 4 j 3385 3444',
16189         'STATE 5 r 3385 5338',
16190         'STATE 1 # 3393 3524',
16191         'STATE 1 a 3385 5339',
16192         'STATE 3 d 3385 3393',
16193         'STATE 6 a 3455 5340',
16194         'STATE 2 c 3455 5341',
16195         'STATE 2 e 3455 3385',
16196         'STATE 1 t 3455 5342',
16197         'STATE 1 h 3455 5343',
16198         'STATE 2 e 4745 3385',
16199         'STATE 1 p 3385 5344',
16200         'STATE 2 u 3385 5345',
16201         'STATE 1 p 3455 3385',
16202         'STATE 5 i 5347 5346',
16203         'STATE 5 e 3385 5348',
16204         'STATE 6 s 3455 3385',
16205         'STATE 6 i 5128 3385',
16206         'STATE 6 h 3385 5349',
16207         'STATE 5 h 3522 5350',
16208         'STATE 5 r 3522 3385',
16209         'STATE 5 d 4662 3385',
16210         'STATE 5 s 3385 5351',
16211         'STATE 4 l 3385 5352',
16212         'STATE 4 l 5354 5353',
16213         'STATE 6 n 3385 5334',
16214         'STATE 6 d 4545 5355',
16215         'STATE 6 a 3455 5356',
16216         'STATE 4 t 5357 3385',
16217         'STATE 4 d 5359 5358',
16218         'STATE 6 n 3393 5360',
16219         'STATE 6 l 3385 5232',
16220         'STATE 6 l 3385 3455',
16221         'STATE 3 s 3385 5361',
16222         'STATE 6 a 3455 5362',
16223         'STATE 4 t 3385 3455',
16224         'STATE 5 y 3444 3385',
16225         'STATE 6 i 3385 3444',
16226         'STATE 5 p 3455 5363',
16227         'STATE 5 c 3455 3385',
16228         'STATE 4 l 3455 3444',
16229         'STATE 6 r 3455 3385',
16230         'STATE 4 g 3444 3385',
16231         'STATE 1 # 5365 5364',
16232         'STATE 1 # 5367 5366',
16233         'STATE 4 x 3385 3455',
16234         'STATE 1 o 4727 3385',
16235         'STATE 4 x 3385 5368',
16236         'STATE 5 a 5370 5369',
16237         'STATE 3 s 3455 5371',
16238         'STATE 5 o 5373 5372',
16239         'STATE 2 g 3522 3385',
16240         'STATE 1 t 3399 5374',
16241         'STATE 5 r 5376 5375',
16242         'STATE 5 r 5378 5377',
16243         'STATE 3 n 3455 5379',
16244         'STATE 4 s 3385 5380',
16245         'STATE 1 d 3385 3455',
16246         'STATE 4 d 3455 5381',
16247         'STATE 2 l 3399 5382',
16248         'STATE 1 a 3393 3455',
16249         'STATE 3 h 3455 5383',
16250         'STATE 5 u 5385 5384',
16251         'STATE 6 n 3455 5386',
16252         'STATE 2 e 3455 5387',
16253         'STATE 3 m 3385 3455',
16254         'STATE 3 l 3385 3393',
16255         'STATE 3 a 3385 5388',
16256         'STATE 6 a 3385 5389',
16257         'STATE 1 # 3385 5390',
16258         'STATE 4 t 5392 5391',
16259         'STATE 5 a 4686 5393',
16260         'STATE 3 t 3399 5394',
16261         'STATE 3 m 3455 5395',
16262         'STATE 1 c 3455 5396',
16263         'STATE 6 i 3522 3385',
16264         'STATE 3 s 3455 3385',
16265         'STATE 4 t 3385 5397',
16266         'STATE 6 t 3385 5398',
16267         'STATE 5 y 3385 5399',
16268         'STATE 6 e 3385 5128',
16269         'STATE 6 u 3522 5400',
16270         'STATE 6 i 3385 5401',
16271         'STATE 4 c 3944 5402',
16272         'STATE 6 n 4964 5403',
16273         'STATE 3 b 3455 5404',
16274         'STATE 4 l 5406 5405',
16275         'STATE 4 d 3455 3385',
16276         'STATE 3 h 3385 5407',
16277         'STATE 4 b 5345 5408',
16278         'STATE 3 s 3455 3393',
16279         'STATE 3 l 3455 3385',
16280         'STATE 3 h 3385 5409',
16281         'STATE 6 e 3385 5410',
16282         'STATE 6 r 3444 5411',
16283         'STATE 2 u 3444 5412',
16284         'STATE 3 l 5414 5413',
16285         'STATE 2 s 3494 5415',
16286         'STATE 3 r 3385 5416',
16287         'STATE 4 q 5418 5417',
16288         'STATE 5 e 5420 5419',
16289         'STATE 6 k 3399 5421',
16290         'STATE 3 r 5423 5422',
16291         'STATE 3 l 5425 5424',
16292         'STATE 6 r 3455 5426',
16293         'STATE 2 o 3399 5427',
16294         'STATE 3 c 3393 5428',
16295         'STATE 2 a 3393 3385',
16296         'STATE 2 o 3399 5429',
16297         'STATE 6 i 5334 5430',
16298         'STATE 6 e 3399 5431',
16299         'STATE 1 l 3524 5432',
16300         'STATE 4 p 3399 5433',
16301         'STATE 1 o 3385 5434',
16302         'STATE 4 s 3522 5435',
16303         'STATE 5 i 5437 5436',
16304         'STATE 4 c 5276 4416',
16305         'STATE 5 i 3393 3524',
16306         'STATE 3 r 5439 5438',
16307         'STATE 4 g 3393 5440',
16308         'STATE 6 e 3385 5441',
16309         'STATE 1 c 3385 5442',
16310         'STATE 3 r 3393 5443',
16311         'STATE 1 # 3393 3385',
16312         'STATE 3 c 3455 5444',
16313         'STATE 3 d 3455 5445',
16314         'STATE 3 h 3455 5446',
16315         'STATE 3 d 3455 5447',
16316         'STATE 5 o 3385 5448',
16317         'STATE 6 s 3389 3385',
16318         'STATE 5 v 3385 5449',
16319         'STATE 5 v 3522 5450',
16320         'STATE 5 d 3522 3385',
16321         'STATE 6 e 3385 5451',
16322         'STATE 3 g 3385 5452',
16323         'STATE 6 d 3385 5453',
16324         'STATE 6 z 3385 5454',
16325         'STATE 6 c 3455 5455',
16326         'STATE 3 v 3385 3393',
16327         'STATE 6 s 3393 5456',
16328         'STATE 4 l 5458 5457',
16329         'STATE 4 b 5460 5459',
16330         'STATE 6 a 3444 5461',
16331         'STATE 5 t 4697 5462',
16332         'STATE 2 g 3399 3393',
16333         'STATE 6 o 3399 3393',
16334         'STATE 3 w 3385 5463',
16335         'STATE 2 a 3522 3385',
16336         'STATE 1 i 5465 5464',
16337         'STATE 1 a 3494 5466',
16338         'STATE 5 b 5468 5467',
16339         'STATE 3 r 3393 5469',
16340         'STATE 1 a 3455 5470',
16341         'STATE 6 r 3385 4042',
16342         'STATE 1 i 3385 3522',
16343         'STATE 3 u 3399 5471',
16344         'STATE 5 r 3522 5472',
16345         'STATE 2 a 3399 3455',
16346         'STATE 2 t 5474 5473',
16347         'STATE 3 p 3393 5475',
16348         'STATE 1 r 3455 5476',
16349         'STATE 6 y 3455 3399',
16350         'STATE 1 o 3385 5477',
16351         'STATE 3 s 3455 5478',
16352         'STATE 2 o 3494 3455',
16353         'STATE 4 x 3385 5479',
16354         'STATE 2 n 3494 3385',
16355         'STATE 5 o 5481 5480',
16356         'STATE 6 e 5483 5482',
16357         'STATE 4 h 3385 5484',
16358         'STATE 2 c 3393 3385',
16359         'STATE 3 r 3393 3399',
16360         'STATE 4 s 3385 5485',
16361         'STATE 1 s 3385 3522',
16362         'STATE 2 a 3385 4499',
16363         'STATE 3 k 3455 5486',
16364         'STATE 6 r 3455 3647',
16365         'STATE 3 z 3455 5487',
16366         'STATE 3 h 3455 5488',
16367         'STATE 5 l 3385 5489',
16368         'STATE 6 r 5491 5490',
16369         'STATE 6 i 3385 5134',
16370         'STATE 3 n 3393 3385',
16371         'STATE 6 p 3385 5492',
16372         'STATE 6 n 4311 3385',
16373         'STATE 3 w 3385 5493',
16374         'STATE 3 m 3455 5494',
16375         'STATE 6 r 5496 5495',
16376         'STATE 6 e 3393 5497',
16377         'STATE 3 f 3455 5498',
16378         'STATE 4 t 3385 3444',
16379         'STATE 5 i 3455 3385',
16380         'STATE 6 h 3444 3385',
16381         'STATE 3 l 3393 5499',
16382         'STATE 1 a 5501 5500',
16383         'STATE 4 j 3399 5502',
16384         'STATE 3 r 5504 5503',
16385         'STATE 6 e 3393 3455',
16386         'STATE 5 u 3455 5505',
16387         'STATE 2 s 3385 4833',
16388         'STATE 3 h 3393 5506',
16389         'STATE 6 r 5426 3455',
16390         'STATE 6 e 3494 5507',
16391         'STATE 2 l 3455 3385',
16392         'STATE 4 m 3455 5508',
16393         'STATE 3 h 3455 3385',
16394         'STATE 5 n 3455 5509',
16395         'STATE 6 a 3455 5510',
16396         'STATE 1 e 3385 5511',
16397         'STATE 4 c 3385 5512',
16398         'STATE 2 p 3455 5513',
16399         'STATE 2 u 3455 5514',
16400         'STATE 3 r 3385 5515',
16401         'STATE 3 h 5516 3385',
16402         'STATE 2 c 3385 3393',
16403         'STATE 3 l 3385 5517',
16404         'STATE 5 a 3452 3385',
16405         'STATE 5 v 3385 5518',
16406         'STATE 1 u 3455 5519',
16407         'STATE 3 p 3385 5520',
16408         'STATE 4 h 3385 5521',
16409         'STATE 6 o 3385 5522',
16410         'STATE 5 d 3385 3522',
16411         'STATE 6 y 3385 5523',
16412         'STATE 6 s 5525 5524',
16413         'STATE 6 b 3385 5526',
16414         'STATE 3 l 3385 5527',
16415         'STATE 4 g 3522 3385',
16416         'STATE 3 m 3385 5528',
16417         'STATE 6 n 3455 5529',
16418         'STATE 6 # 5530 3393',
16419         'STATE 2 t 3385 5531',
16420         'STATE 4 v 3522 3385',
16421         'STATE 1 e 5533 5532',
16422         'STATE 4 b 3455 5534',
16423         'STATE 4 p 5535 3455',
16424         'STATE 3 m 3385 5536',
16425         'STATE 6 r 3399 3455',
16426         'STATE 5 r 3399 5537',
16427         'STATE 4 g 3455 3399',
16428         'STATE 5 a 3455 5538',
16429         'STATE 5 o 3399 5539',
16430         'STATE 3 c 5540 3385',
16431         'STATE 1 h 3399 5304',
16432         'STATE 3 l 5035 5541',
16433         'STATE 6 a 3385 5542',
16434         'STATE 4 m 3455 3385',
16435         'STATE 4 m 3385 3393',
16436         'STATE 4 f 3385 5543',
16437         'STATE 6 i 3385 5544',
16438         'STATE 3 n 4913 5545',
16439         'STATE 5 f 3455 5546',
16440         'STATE 5 p 3385 5547',
16441         'STATE 5 g 3522 3385',
16442         'STATE 4 s 3385 5548',
16443         'STATE 6 a 3455 5549',
16444         'STATE 4 c 3455 5356',
16445         'STATE 3 c 3522 4989',
16446         'STATE 6 d 3455 5550',
16447         'STATE 4 p 3522 5551',
16448         'STATE 3 m 3522 3385',
16449         'STATE 3 r 3444 5552',
16450         'STATE 4 x 5554 5553',
16451         'STATE 5 q 3385 5555',
16452         'STATE 2 r 4279 5556',
16453         'STATE 2 d 3399 5557',
16454         'STATE 5 r 3385 3455',
16455         'STATE 5 o 3399 3385',
16456         'STATE 5 u 3399 5558',
16457         'STATE 2 a 3399 5559',
16458         'STATE 2 i 3399 5560',
16459         'STATE 6 o 3385 3399',
16460         'STATE 2 s 3455 5561',
16461         'STATE 4 s 5562 3385',
16462         'STATE 3 h 3385 5563',
16463         'STATE 1 i 3455 5564',
16464         'STATE 2 t 3385 5565',
16465         'STATE 6 n 3455 5566',
16466         'STATE 4 b 3385 5567',
16467         'STATE 4 d 5310 5568',
16468         'STATE 4 b 3385 5569',
16469         'STATE 6 c 3455 5570',
16470         'STATE 3 g 3385 5571',
16471         'STATE 1 a 3444 3393',
16472         'STATE 4 v 4359 3455',
16473         'STATE 2 i 3522 5572',
16474         'STATE 2 h 5574 5573',
16475         'STATE 2 f 3385 5575',
16476         'STATE 4 h 3455 5576',
16477         'STATE 6 r 3399 3385',
16478         'STATE 3 l 3455 5577',
16479         'STATE 5 h 3399 3385',
16480         'STATE 2 g 3455 5578',
16481         'STATE 2 c 5579 3385',
16482         'STATE 4 p 3455 3385',
16483         'STATE 2 e 3455 5580',
16484         'STATE 3 r 3455 5581',
16485         'STATE 3 k 3455 5582',
16486         'STATE 5 s 3385 5583',
16487         'STATE 3 l 3385 4424',
16488         'STATE 3 g 5064 5584',
16489         'STATE 4 g 3385 5585',
16490         'STATE 4 d 3385 5586',
16491         'STATE 2 u 3455 5587',
16492         'STATE 3 h 5589 5588',
16493         'STATE 3 o 3399 5590',
16494         'STATE 2 m 3385 3399',
16495         'STATE 6 s 3399 3455',
16496         'STATE 5 e 4090 3455',
16497         'STATE 2 e 3455 5591',
16498         'STATE 5 c 3522 3385',
16499         'STATE 2 o 3385 3455',
16500         'STATE 1 o 3455 5592',
16501         'STATE 2 r 3455 5593',
16502         'STATE 5 e 3393 3385',
16503         'STATE 4 f 3455 5594',
16504         'STATE 4 t 3385 5595',
16505         'STATE 3 f 3385 5596',
16506         'STATE 2 a 3385 5597',
16507         'STATE 4 c 5599 5598',
16508         'STATE 4 u 3399 4523',
16509         'STATE 3 a 3399 3385',
16510         'STATE 2 n 3455 3385',
16511         'STATE 1 e 3455 5600',
16512         'STATE 2 u 3455 4701',
16513         'STATE 3 c 3455 5601',
16514         'STATE 3 t 3385 5602',
16515         'STATE 6 n 5603 3385',
16516         'STATE 2 o 3522 5276',
16517         'STATE 5 h 5605 5604',
16518         'STATE 6 l 3455 5606',
16519         'STATE 3 k 3455 3385',
16520         'STATE 4 m 3385 5037',
16521         'STATE 3 s 3385 5607',
16522         'STATE 4 n 3987 3393',
16523         'STATE 3 d 5609 5608',
16524         'STATE 1 j 3455 5610',
16525         'STATE 5 e 3494 5611',
16526         'STATE 4 v 3385 5612',
16527         'STATE 4 h 3399 5613',
16528         'STATE 2 i 3399 5614',
16529         'STATE 3 r 3399 5615',
16530         'STATE 6 e 5616 4912',
16531         'STATE 4 n 3385 5617',
16532         'STATE 6 s 3399 5618',
16533         'STATE 1 r 3455 5619',
16534         'STATE 6 o 3399 5620',
16535         'STATE 5 h 3385 3494',
16536         'STATE 3 b 3385 3522',
16537         'STATE 5 n 3399 5621',
16538         'STATE 4 b 3399 3455',
16539         'STATE 2 a 3385 5622',
16540         'STATE 5 u 3399 5623',
16541         'STATE 6 i 3399 3494',
16542         'STATE 1 f 3399 5624',
16543         'STATE 3 r 5626 5625',
16544         'STATE 2 i 5628 5627',
16545         'STATE 2 t 3455 5629',
16546         'STATE 4 p 5631 5630',
16547         'STATE 5 o 3399 5632',
16548         'STATE 2 r 3455 5633',
16549         'STATE 3 g 3455 5634',
16550         'STATE 5 p 3385 3399',
16551         'STATE 6 r 3399 5635',
16552         'STATE 6 r 3455 3399',
16553         'STATE 3 a 3399 5636',
16554         'STATE 5 e 3455 5637',
16555         'STATE 1 a 5639 5638',
16556         'STATE 3 n 5640 3399',
16557         'STATE 6 a 3399 5641',
16558         'STATE 4 b 3455 3399',
16559         'STATE 4 s 3399 3455',
16560         'STATE 4 f 3399 5642',
16561         'STATE 3 l 3399 5643',
16562         'STATE 1 n 3399 5644',
16563         'STATE 5 e 5645 3399',
16564         'STATE 6 r 3399 5646',
16565         'STATE 4 k 3399 3455',
16566         'INDEX 5647 f',
16567         'STATE 4 f 5649 5648',
16568         'PHONE f',
16569         'PHONE epsilon',
16570         'INDEX 5650 g',
16571         'STATE 3 n 5652 5651',
16572         'STATE 4 h 5654 5653',
16573         'STATE 4 # 5656 5655',
16574         'STATE 4 g 5658 5657',
16575         'STATE 5 t 5656 5659',
16576         'STATE 4 s 5656 5660',
16577         'PHONE epsilon',
16578         'STATE 4 e 5662 5661',
16579         'STATE 2 s 5664 5663',
16580         'STATE 3 u 5666 5665',
16581         'STATE 4 e 5668 5667',
16582         'STATE 4 i 5670 5669',
16583         'STATE 5 r 5672 5671',
16584         'STATE 1 # 5656 5673',
16585         'STATE 6 s 5674 5656',
16586         'STATE 3 i 5676 5675',
16587         'STATE 5 # 5656 5677',
16588         'STATE 4 i 5679 5678',
16589         'STATE 6 # 5681 5680',
16590         'STATE 4 y 5683 5682',
16591         'STATE 2 l 5685 5684',
16592         'STATE 3 d 5687 5686',
16593         'STATE 6 # 5689 5688',
16594         'STATE 5 l 5691 5690',
16595         'PHONE g',
16596         'STATE 1 0 5674 5692',
16597         'STATE 5 a 5674 5693',
16598         'STATE 1 t 5695 5694',
16599         'STATE 4 t 5697 5696',
16600         'STATE 6 g 5699 5698',
16601         'STATE 5 # 5687 5700',
16602         'STATE 5 l 5674 5701',
16603         'STATE 4 n 5703 5702',
16604         'STATE 3 g 5674 5704',
16605         'STATE 5 a 5687 5705',
16606         'STATE 5 n 5706 5687',
16607         'STATE 3 g 5708 5707',
16608         'PHONE jh',
16609         'STATE 6 a 5687 5709',
16610         'STATE 3 d 5687 5710',
16611         'STATE 2 b 5674 5656',
16612         'STATE 1 t 5674 5656',
16613         'STATE 1 b 5674 5711',
16614         'STATE 5 e 5674 5656',
16615         'STATE 1 l 5713 5712',
16616         'PHONE f',
16617         'STATE 4 y 5687 5714',
16618         'STATE 2 e 5715 5656',
16619         'STATE 5 l 5674 5716',
16620         'STATE 2 i 5656 5717',
16621         'STATE 5 r 5719 5718',
16622         'STATE 5 s 5687 5720',
16623         'STATE 3 d 5722 5721',
16624         'STATE 5 # 5656 5723',
16625         'STATE 2 l 5687 5724',
16626         'STATE 2 0 5726 5725',
16627         'STATE 6 g 5687 5674',
16628         'STATE 5 # 5687 5727',
16629         'STATE 1 s 5687 5674',
16630         'STATE 3 g 5674 5728',
16631         'STATE 1 c 5687 5729',
16632         'STATE 3 e 5674 5730',
16633         'STATE 2 o 5732 5731',
16634         'STATE 2 a 5733 5656',
16635         'STATE 5 y 5735 5734',
16636         'STATE 6 e 5656 5736',
16637         'STATE 6 e 5687 5737',
16638         'STATE 2 o 5656 5687',
16639         'STATE 5 l 5739 5738',
16640         'STATE 1 f 5674 5740',
16641         'STATE 1 s 5742 5741',
16642         'STATE 3 g 5744 5743',
16643         'STATE 4 r 5674 5745',
16644         'STATE 2 0 5656 5746',
16645         'STATE 1 # 5674 5747',
16646         'STATE 3 g 5749 5748',
16647         'STATE 5 l 5674 5750',
16648         'STATE 5 l 5752 5751',
16649         'STATE 3 d 5687 5753',
16650         'STATE 3 a 5755 5754',
16651         'STATE 2 a 5674 5756',
16652         'STATE 2 a 5656 5757',
16653         'STATE 1 c 5695 5656',
16654         'STATE 5 l 5736 5695',
16655         'STATE 4 h 5759 5758',
16656         'STATE 4 l 5656 5674',
16657         'PHONE k',
16658         'STATE 6 l 5687 5760',
16659         'STATE 6 b 5656 5761',
16660         'STATE 2 a 5762 5674',
16661         'STATE 1 d 5687 5763',
16662         'STATE 2 i 5765 5764',
16663         'STATE 2 i 5687 5656',
16664         'STATE 4 t 5766 5674',
16665         'STATE 1 r 5735 5674',
16666         'STATE 6 n 5687 5767',
16667         'STATE 6 d 5656 5768',
16668         'STATE 6 e 5674 5687',
16669         'STATE 3 c 5674 5769',
16670         'STATE 5 o 5687 5770',
16671         'STATE 5 o 5687 5771',
16672         'STATE 5 i 5674 5772',
16673         'STATE 6 l 5774 5773',
16674         'STATE 6 t 5674 5775',
16675         'STATE 1 m 5687 5674',
16676         'STATE 2 r 5674 5776',
16677         'STATE 5 # 5656 5777',
16678         'STATE 5 e 5656 5674',
16679         'STATE 4 m 5656 5778',
16680         'STATE 5 i 5674 5656',
16681         'STATE 1 # 5687 5779',
16682         'STATE 1 l 5674 5780',
16683         'STATE 6 o 5674 5781',
16684         'STATE 6 s 5783 5782',
16685         'STATE 1 w 5656 5784',
16686         'STATE 1 h 5687 5656',
16687         'STATE 3 a 5674 5785',
16688         'STATE 5 e 5687 5786',
16689         'STATE 6 t 5674 5787',
16690         'STATE 5 v 5674 5788',
16691         'STATE 5 # 5687 5789',
16692         'STATE 5 u 5687 5790',
16693         'STATE 5 t 5792 5791',
16694         'STATE 2 0 5793 5674',
16695         'STATE 3 a 5687 5674',
16696         'STATE 6 s 5795 5794',
16697         'STATE 1 s 5674 5796',
16698         'STATE 1 o 5656 5674',
16699         'STATE 4 b 5656 5797',
16700         'STATE 1 r 5687 5798',
16701         'STATE 6 t 5687 5799',
16702         'STATE 1 v 5687 5800',
16703         'STATE 1 l 5674 5801',
16704         'STATE 2 i 5656 5802',
16705         'STATE 2 o 5656 5803',
16706         'STATE 1 # 5674 5656',
16707         'STATE 4 a 5674 5804',
16708         'STATE 3 i 5806 5805',
16709         'STATE 3 o 5674 5807',
16710         'STATE 5 n 5674 5808',
16711         'STATE 5 n 5810 5809',
16712         'STATE 2 h 5812 5811',
16713         'STATE 1 0 5674 5813',
16714         'STATE 6 a 5687 5674',
16715         'STATE 2 e 5674 5814',
16716         'STATE 3 a 5815 5674',
16717         'STATE 1 h 5674 5816',
16718         'STATE 4 d 5656 5817',
16719         'STATE 5 n 5674 5818',
16720         'STATE 2 o 5687 5819',
16721         'STATE 1 # 5820 5674',
16722         'STATE 1 # 5674 5821',
16723         'STATE 2 e 5687 5656',
16724         'STATE 5 d 5687 5822',
16725         'STATE 4 o 5674 5687',
16726         'STATE 6 # 5757 5674',
16727         'STATE 5 m 5656 5823',
16728         'STATE 6 # 5825 5824',
16729         'STATE 1 r 5687 5674',
16730         'STATE 5 v 5674 5826',
16731         'STATE 6 n 5687 5827',
16732         'STATE 6 s 5829 5828',
16733         'STATE 1 n 5674 5830',
16734         'STATE 2 v 5687 5831',
16735         'STATE 6 g 5674 5832',
16736         'STATE 1 # 5674 5687',
16737         'STATE 1 # 5674 5833',
16738         'STATE 4 f 5656 5834',
16739         'STATE 2 i 5674 5835',
16740         'STATE 6 i 5674 5836',
16741         'STATE 6 i 5674 5687',
16742         'STATE 6 t 5674 5837',
16743         'STATE 2 e 5687 5838',
16744         'STATE 5 s 5656 5839',
16745         'STATE 6 l 5841 5840',
16746         'STATE 2 r 5687 5842',
16747         'STATE 5 f 5674 5843',
16748         'STATE 6 t 5687 5844',
16749         'STATE 6 h 5674 5845',
16750         'STATE 1 j 5674 5846',
16751         'STATE 5 m 5674 5847',
16752         'STATE 6 t 5848 5674',
16753         'STATE 6 l 5674 5849',
16754         'STATE 2 e 5674 5687',
16755         'STATE 4 w 5656 5850',
16756         'STATE 5 e 5656 5687',
16757         'STATE 6 u 5687 5851',
16758         'STATE 2 i 5687 5674',
16759         'STATE 1 r 5687 5852',
16760         'STATE 1 0 5674 5853',
16761         'STATE 2 b 5674 5854',
16762         'STATE 1 c 5674 5855',
16763         'STATE 2 o 5855 5856',
16764         'STATE 6 d 5674 5857',
16765         'STATE 6 g 5674 5687',
16766         'STATE 5 u 5859 5858',
16767         'STATE 1 # 5674 5860',
16768         'STATE 5 n 5674 5687',
16769         'STATE 3 r 5674 5687',
16770         'STATE 6 b 5674 5861',
16771         'STATE 4 p 5656 5862',
16772         'STATE 2 a 5687 5863',
16773         'STATE 1 l 5656 5864',
16774         'STATE 5 a 5674 5865',
16775         'STATE 2 h 5674 5866',
16776         'STATE 5 e 5674 5687',
16777         'STATE 1 # 5687 5867',
16778         'STATE 6 s 5674 5868',
16779         'STATE 1 b 5848 5869',
16780         'PHONE zh',
16781         'STATE 5 m 5687 5870',
16782         'STATE 6 y 5687 5871',
16783         'STATE 5 u 5873 5872',
16784         'STATE 1 # 5674 5874',
16785         'STATE 5 r 5875 5687',
16786         'STATE 6 f 5674 5876',
16787         'STATE 2 s 5674 5687',
16788         'STATE 5 s 5674 5877',
16789         'STATE 5 s 5687 5878',
16790         'STATE 2 b 5674 5879',
16791         'STATE 5 n 5880 5674',
16792         'STATE 2 n 5687 5881',
16793         'STATE 4 o 5674 5882',
16794         'STATE 2 a 5656 5883',
16795         'STATE 2 i 5674 5687',
16796         'STATE 2 a 5656 5674',
16797         'STATE 2 m 5674 5884',
16798         'STATE 1 r 5674 5885',
16799         'STATE 5 r 5674 5886',
16800         'STATE 6 r 5888 5887',
16801         'STATE 1 0 5687 5674',
16802         'STATE 2 0 5890 5889',
16803         'STATE 4 a 5892 5891',
16804         'STATE 6 i 5656 5674',
16805         'STATE 6 n 5894 5893',
16806         'STATE 2 e 5674 5895',
16807         'STATE 6 g 5674 5896',
16808         'STATE 3 a 5898 5897',
16809         'STATE 5 o 5687 5899',
16810         'STATE 3 i 5687 5900',
16811         'STATE 6 m 5687 5901',
16812         'STATE 4 r 5674 5902',
16813         'STATE 1 h 5656 5674',
16814         'STATE 6 r 5656 5903',
16815         'STATE 5 i 5656 5674',
16816         'STATE 3 a 5674 5687',
16817         'STATE 6 m 5674 5904',
16818         'STATE 6 t 5687 5905',
16819         'STATE 5 n 5815 5687',
16820         'STATE 5 a 5674 5906',
16821         'STATE 6 i 5687 5674',
16822         'STATE 6 r 5687 5907',
16823         'STATE 4 l 5909 5908',
16824         'STATE 6 # 5656 5674',
16825         'STATE 5 d 5674 5910',
16826         'STATE 5 o 5687 5911',
16827         'STATE 5 e 5674 5912',
16828         'STATE 6 i 5687 5913',
16829         'STATE 5 e 5656 5914',
16830         'STATE 2 e 5757 5915',
16831         'STATE 5 b 5917 5916',
16832         'STATE 5 n 5919 5918',
16833         'STATE 5 h 5674 5687',
16834         'STATE 6 o 5687 5674',
16835         'STATE 4 u 5674 5656',
16836         'STATE 5 e 5921 5920',
16837         'STATE 6 l 5687 5922',
16838         'STATE 6 b 5674 5687',
16839         'STATE 6 # 5687 5923',
16840         'STATE 6 # 5924 5874',
16841         'STATE 6 s 5674 5925',
16842         'STATE 1 l 5656 5674',
16843         'STATE 5 e 5674 5926',
16844         'STATE 5 a 5687 5927',
16845         'STATE 3 o 5687 5928',
16846         'STATE 6 n 5674 5929',
16847         'STATE 6 a 5674 5930',
16848         'STATE 6 i 5687 5931',
16849         'STATE 3 r 5674 5932',
16850         'STATE 6 m 5674 5933',
16851         'STATE 6 t 5674 5687',
16852         'STATE 3 l 5674 5934',
16853         'STATE 1 # 5674 5935',
16854         'STATE 5 a 5656 5894',
16855         'STATE 6 a 5674 5936',
16856         'STATE 3 i 5687 5674',
16857         'STATE 5 m 5687 5937',
16858         'STATE 1 0 5938 5674',
16859         'STATE 5 b 5687 5674',
16860         'INDEX 5939 h',
16861         'STATE 3 # 5941 5940',
16862         'STATE 3 c 5943 5942',
16863         'STATE 4 a 5945 5944',
16864         'STATE 3 s 5947 5946',
16865         'STATE 4 o 5948 5947',
16866         'STATE 4 o 5945 5949',
16867         'PHONE hh',
16868         'STATE 3 t 5951 5950',
16869         'PHONE epsilon',
16870         'STATE 1 i 5945 5947',
16871         'STATE 4 i 5945 5952',
16872         'STATE 3 p 5954 5953',
16873         'STATE 4 o 5955 5947',
16874         'STATE 4 u 5945 5956',
16875         'STATE 3 g 5958 5957',
16876         'STATE 1 # 5947 5959',
16877         'STATE 1 0 5947 5960',
16878         'STATE 4 y 5945 5961',
16879         'STATE 1 0 5963 5962',
16880         'STATE 1 i 5965 5964',
16881         'STATE 1 h 5966 5947',
16882         'STATE 1 g 5945 5947',
16883         'STATE 4 e 5945 5967',
16884         'STATE 4 l 5947 5968',
16885         'STATE 4 o 5970 5969',
16886         'STATE 4 o 5972 5971',
16887         'STATE 4 o 5945 5973',
16888         'STATE 4 e 5947 5945',
16889         'STATE 4 r 5945 5974',
16890         'STATE 4 # 5947 5975',
16891         'STATE 3 o 5977 5976',
16892         'STATE 3 r 5947 5978',
16893         'STATE 4 a 5980 5979',
16894         'STATE 1 0 5947 5945',
16895         'STATE 4 a 5945 5947',
16896         'STATE 4 l 5945 5947',
16897         'STATE 4 n 5947 5981',
16898         'STATE 3 a 5973 5947',
16899         'STATE 4 a 5945 5982',
16900         'STATE 3 w 5945 5947',
16901         'STATE 4 u 5945 5947',
16902         'STATE 1 0 5947 5983',
16903         'STATE 4 r 5947 5984',
16904         'STATE 4 l 5947 5985',
16905         'STATE 1 n 5945 5947',
16906         'STATE 4 m 5947 5986',
16907         'STATE 4 m 5947 5945',
16908         'STATE 4 s 5947 5987',
16909         'STATE 3 w 5983 5988',
16910         'STATE 3 x 5990 5989',
16911         'STATE 4 t 5947 5991',
16912         'STATE 4 i 5947 5992',
16913         'STATE 4 d 5947 5993',
16914         'STATE 4 a 5947 5945',
16915         'STATE 4 o 5995 5994',
16916         'STATE 3 n 5945 5996',
16917         'STATE 1 s 5945 5997',
16918         'STATE 4 y 5999 5998',
16919         'STATE 1 c 5945 6000',
16920         'STATE 1 h 5992 6001',
16921         'STATE 3 e 5945 6002',
16922         'STATE 3 e 5945 6003',
16923         'STATE 3 z 6005 6004',
16924         'STATE 3 a 5945 5947',
16925         'STATE 3 d 5945 6006',
16926         'STATE 3 d 6008 6007',
16927         'STATE 4 a 5945 6009',
16928         'STATE 3 n 5945 6010',
16929         'STATE 1 u 5945 6011',
16930         'STATE 4 e 5945 6012',
16931         'STATE 4 e 5945 5947',
16932         'STATE 1 o 6013 5945',
16933         'STATE 1 e 5945 6014',
16934         'STATE 4 u 5945 6015',
16935         'STATE 3 r 5947 5945',
16936         'STATE 4 a 6017 6016',
16937         'STATE 1 e 5945 5947',
16938         'STATE 1 # 6019 6018',
16939         'STATE 1 # 5945 6020',
16940         'STATE 1 k 5947 6021',
16941         'STATE 4 i 5945 6022',
16942         'STATE 1 b 5945 6023',
16943         'STATE 3 o 5945 6024',
16944         'STATE 4 e 5945 5979',
16945         'STATE 1 v 5945 6025',
16946         'STATE 1 p 5945 6026',
16947         'STATE 1 m 5947 6027',
16948         'STATE 1 t 5945 6028',
16949         'STATE 3 i 5945 6029',
16950         'STATE 1 i 5945 6030',
16951         'STATE 1 f 5945 6031',
16952         'STATE 1 l 5945 6032',
16953         'STATE 1 d 5945 6033',
16954         'STATE 1 o 5945 6034',
16955         'STATE 3 o 5945 6035',
16956         'STATE 1 g 5945 6036',
16957         'STATE 3 a 5945 6037',
16958         'STATE 3 i 6039 6038',
16959         'STATE 3 m 5945 6040',
16960         'STATE 1 c 5945 6041',
16961         'STATE 1 n 5947 5945',
16962         'STATE 1 r 6042 5945',
16963         'STATE 1 n 5945 6043',
16964         'STATE 3 u 5947 5945',
16965         'STATE 3 e 5945 6044',
16966         'STATE 1 w 5945 6045',
16967         'STATE 1 r 5945 6046',
16968         'STATE 1 a 5945 6047',
16969         'STATE 3 r 5945 6048',
16970         'STATE 1 s 5945 6049',
16971         'STATE 1 m 5945 6002',
16972         'INDEX 6050 i',
16973         'STATE 5 g 6052 6051',
16974         'STATE 4 # 6054 6053',
16975         'STATE 6 # 6056 6055',
16976         'STATE 4 o 6058 6057',
16977         'STATE 3 a 6060 6059',
16978         'STATE 2 # 6062 6061',
16979         'STATE 4 n 6064 6063',
16980         'STATE 4 e 6066 6065',
16981         'STATE 3 t 6068 6067',
16982         'STATE 3 e 6070 6069',
16983         'STATE 2 h 6072 6071',
16984         'STATE 4 n 6074 6073',
16985         'STATE 4 e 6076 6075',
16986         'STATE 4 e 6076 6077',
16987         'STATE 2 # 6077 6078',
16988         'STATE 4 a 6080 6079',
16989         'STATE 2 # 6082 6081',
16990         'STATE 3 s 6084 6083',
16991         'STATE 5 n 6086 6085',
16992         'PHONE iy',
16993         'STATE 2 m 6072 6086',
16994         'STATE 2 k 6072 6087',
16995         'PHONE ay1',
16996         'STATE 4 e 6076 6088',
16997         'STATE 3 s 6090 6089',
16998         'STATE 4 r 6086 6091',
16999         'PHONE iy1',
17000         'PHONE ih1',
17001         'STATE 3 r 6093 6092',
17002         'STATE 3 a 6095 6094',
17003         'STATE 3 c 6097 6096',
17004         'STATE 5 r 6099 6098',
17005         'STATE 5 r 6101 6100',
17006         'STATE 2 # 6103 6102',
17007         'STATE 5 n 6086 6069',
17008         'STATE 5 u 6086 6069',
17009         'PHONE epsilon',
17010         'STATE 2 d 6086 6072',
17011         'STATE 6 e 6105 6104',
17012         'STATE 2 0 6077 6106',
17013         'STATE 6 e 6108 6107',
17014         'STATE 4 a 6110 6109',
17015         'STATE 3 w 6111 6107',
17016         'STATE 2 d 6077 6112',
17017         'STATE 5 e 6114 6113',
17018         'STATE 4 c 6116 6115',
17019         'STATE 3 t 6118 6117',
17020         'STATE 5 t 6069 6119',
17021         'STATE 5 # 6069 6120',
17022         'STATE 3 e 6122 6121',
17023         'STATE 5 w 6086 6123',
17024         'STATE 3 h 6072 6124',
17025         'STATE 5 n 6126 6125',
17026         'STATE 3 g 6086 6127',
17027         'STATE 4 o 6129 6128',
17028         'STATE 2 r 6107 6130',
17029         'STATE 3 e 6072 6131',
17030         'PHONE ih',
17031         'PHONE ax',
17032         'STATE 4 o 6132 6077',
17033         'STATE 3 d 6072 6069',
17034         'STATE 2 o 6107 6133',
17035         'STATE 2 e 6107 6134',
17036         'STATE 4 c 6136 6135',
17037         'STATE 4 v 6138 6137',
17038         'STATE 2 z 6077 6139',
17039         'STATE 5 # 6107 6086',
17040         'STATE 2 # 6141 6140',
17041         'STATE 5 t 6069 6142',
17042         'STATE 6 o 6069 6143',
17043         'STATE 5 s 6145 6144',
17044         'STATE 6 # 6147 6146',
17045         'STATE 2 m 6132 6072',
17046         'STATE 3 d 6149 6148',
17047         'STATE 3 p 6077 6150',
17048         'STATE 5 u 6152 6151',
17049         'STATE 2 l 6154 6153',
17050         'STATE 3 f 6069 6155',
17051         'STATE 4 a 6069 6156',
17052         'STATE 2 o 6132 6069',
17053         'STATE 4 d 6158 6157',
17054         'STATE 2 s 6160 6159',
17055         'PHONE ay',
17056         'STATE 2 a 6107 6161',
17057         'STATE 2 a 6107 6162',
17058         'STATE 4 r 6164 6163',
17059         'STATE 2 # 6166 6165',
17060         'STATE 3 o 6168 6167',
17061         'STATE 3 t 6107 6169',
17062         'STATE 5 a 6171 6170',
17063         'STATE 3 s 6173 6172',
17064         'STATE 3 g 6086 6174',
17065         'STATE 6 # 6086 6175',
17066         'STATE 5 l 6086 6176',
17067         'STATE 5 d 6178 6177',
17068         'STATE 3 f 6072 6179',
17069         'STATE 6 s 6181 6180',
17070         'STATE 3 a 6132 6182',
17071         'STATE 6 e 6076 6183',
17072         'STATE 5 t 6185 6184',
17073         'STATE 3 s 6069 6186',
17074         'STATE 5 r 6188 6187',
17075         'STATE 3 c 6086 6189',
17076         'STATE 3 n 6154 6190',
17077         'PHONE y',
17078         'STATE 5 l 6192 6191',
17079         'STATE 6 r 6086 6077',
17080         'STATE 4 g 6077 6072',
17081         'STATE 3 r 6193 6107',
17082         'STATE 3 r 6195 6194',
17083         'STATE 3 w 6077 6196',
17084         'STATE 2 e 6107 6077',
17085         'STATE 2 u 6107 6197',
17086         'STATE 3 e 6199 6198',
17087         'STATE 6 n 6201 6200',
17088         'STATE 5 # 6107 6202',
17089         'STATE 5 r 6072 6203',
17090         'STATE 6 # 6205 6204',
17091         'STATE 4 r 6206 6086',
17092         'STATE 3 s 6107 6207',
17093         'STATE 5 o 6209 6208',
17094         'STATE 4 n 6086 6210',
17095         'STATE 3 l 6212 6211',
17096         'STATE 5 k 6069 6213',
17097         'STATE 3 d 6072 6214',
17098         'STATE 2 s 6216 6215',
17099         'STATE 5 n 6086 6217',
17100         'STATE 5 w 6219 6218',
17101         'STATE 3 f 6072 6220',
17102         'STATE 6 # 6222 6221',
17103         'STATE 6 i 6077 6223',
17104         'STATE 2 i 6072 6224',
17105         'STATE 3 f 6072 6225',
17106         'STATE 5 s 6184 6226',
17107         'STATE 6 # 6072 6076',
17108         'STATE 6 z 6076 6227',
17109         'STATE 6 a 6076 6228',
17110         'STATE 2 0 6072 6229',
17111         'STATE 3 r 6231 6230',
17112         'STATE 3 g 6086 6069',
17113         'STATE 2 0 6132 6232',
17114         'STATE 3 b 6072 6233',
17115         'STATE 6 e 6072 6234',
17116         'STATE 2 b 6077 6235',
17117         'STATE 6 s 6107 6236',
17118         'STATE 6 t 6107 6237',
17119         'STATE 6 u 6077 6238',
17120         'STATE 2 o 6107 6239',
17121         'STATE 3 o 6241 6240',
17122         'STATE 4 g 6243 6242',
17123         'STATE 3 o 6245 6244',
17124         'STATE 5 a 6107 6246',
17125         'STATE 5 a 6248 6247',
17126         'STATE 5 k 6077 6249',
17127         'STATE 2 # 6251 6250',
17128         'STATE 4 n 6253 6252',
17129         'PHONE aa1',
17130         'STATE 3 e 6076 6254',
17131         'STATE 4 v 6086 6255',
17132         'STATE 4 n 6086 6256',
17133         'STATE 2 t 6072 6086',
17134         'STATE 3 g 6258 6257',
17135         'STATE 6 e 6260 6259',
17136         'STATE 6 i 6069 6261',
17137         'STATE 5 n 6263 6262',
17138         'STATE 2 n 6086 6264',
17139         'STATE 5 # 6069 6265',
17140         'STATE 6 # 6069 6086',
17141         'STATE 5 n 6267 6266',
17142         'STATE 3 v 6086 6268',
17143         'STATE 6 # 6270 6269',
17144         'STATE 3 r 6076 6271',
17145         'STATE 3 l 6273 6272',
17146         'STATE 6 e 6275 6274',
17147         'STATE 3 l 6154 6276',
17148         'STATE 3 s 6069 6277',
17149         'STATE 3 b 6279 6278',
17150         'STATE 6 e 6076 6072',
17151         'STATE 6 n 6077 6280',
17152         'STATE 5 # 6282 6281',
17153         'STATE 2 a 6154 6283',
17154         'STATE 2 p 6132 6069',
17155         'STATE 3 l 6285 6284',
17156         'STATE 6 t 6069 6286',
17157         'STATE 6 i 6132 6287',
17158         'STATE 2 t 6077 6288',
17159         'STATE 2 k 6077 6289',
17160         'STATE 2 e 6107 6290',
17161         'STATE 6 i 6077 6291',
17162         'STATE 2 r 6107 6292',
17163         'STATE 2 # 6294 6293',
17164         'STATE 4 s 6296 6295',
17165         'STATE 5 # 6298 6297',
17166         'STATE 5 h 6300 6299',
17167         'STATE 5 a 6302 6301',
17168         'STATE 5 # 6206 6086',
17169         'STATE 2 # 6304 6303',
17170         'STATE 6 # 6306 6305',
17171         'STATE 6 t 6308 6307',
17172         'STATE 3 e 6072 6309',
17173         'STATE 3 e 6311 6310',
17174         'STATE 4 r 6313 6312',
17175         'STATE 4 c 6315 6314',
17176         'STATE 3 l 6317 6316',
17177         'STATE 3 d 6319 6318',
17178         'STATE 4 s 6320 6086',
17179         'STATE 6 r 6086 6321',
17180         'STATE 3 o 6154 6322',
17181         'STATE 2 r 6086 6323',
17182         'STATE 2 g 6069 6324',
17183         'STATE 5 m 6086 6069',
17184         'STATE 5 s 6069 6325',
17185         'STATE 3 h 6072 6326',
17186         'STATE 6 # 6076 6069',
17187         'STATE 6 s 6086 6327',
17188         'STATE 6 i 6086 6069',
17189         'STATE 5 t 6329 6328',
17190         'STATE 2 f 6086 6330',
17191         'STATE 6 i 6108 6069',
17192         'STATE 2 f 6076 6069',
17193         'STATE 2 p 6072 6331',
17194         'STATE 6 t 6069 6332',
17195         'STATE 2 i 6069 6333',
17196         'STATE 2 l 6069 6072',
17197         'STATE 2 n 6069 6077',
17198         'STATE 2 e 6077 6334',
17199         'STATE 2 o 6069 6335',
17200         'STATE 2 r 6069 6336',
17201         'STATE 5 n 6338 6337',
17202         'STATE 5 n 6108 6076',
17203         'STATE 3 w 6077 6339',
17204         'STATE 3 a 6072 6340',
17205         'STATE 3 h 6341 6069',
17206         'STATE 3 n 6154 6342',
17207         'STATE 3 r 6069 6343',
17208         'STATE 2 g 6069 6154',
17209         'STATE 5 n 6072 6344',
17210         'STATE 3 b 6132 6072',
17211         'STATE 2 d 6107 6345',
17212         'STATE 6 u 6077 6346',
17213         'STATE 2 a 6107 6347',
17214         'STATE 3 l 6077 6348',
17215         'STATE 2 i 6107 6345',
17216         'STATE 2 0 6350 6349',
17217         'STATE 4 g 6352 6351',
17218         'STATE 5 c 6108 6086',
17219         'STATE 5 # 6206 6353',
17220         'STATE 2 r 6355 6354',
17221         'STATE 2 h 6357 6356',
17222         'STATE 5 n 6359 6358',
17223         'STATE 6 # 6086 6360',
17224         'STATE 5 o 6362 6361',
17225         'STATE 3 e 6086 6363',
17226         'STATE 2 0 6072 6364',
17227         'STATE 5 o 6107 6086',
17228         'STATE 3 e 6072 6365',
17229         'STATE 5 o 6367 6366',
17230         'STATE 6 l 6369 6368',
17231         'STATE 3 r 6107 6370',
17232         'STATE 5 h 6372 6371',
17233         'STATE 4 z 6374 6373',
17234         'STATE 6 d 6086 6375',
17235         'STATE 6 s 6377 6376',
17236         'STATE 3 d 6086 6378',
17237         'STATE 4 l 6380 6379',
17238         'STATE 2 # 6072 6381',
17239         'STATE 3 w 6072 6382',
17240         'STATE 2 o 6076 6383',
17241         'STATE 2 o 6385 6384',
17242         'STATE 2 # 6386 6072',
17243         'STATE 6 # 6387 6086',
17244         'STATE 6 n 6086 6388',
17245         'STATE 3 n 6390 6389',
17246         'STATE 6 # 6069 6391',
17247         'STATE 2 p 6072 6392',
17248         'STATE 6 # 6086 6393',
17249         'STATE 3 v 6072 6394',
17250         'STATE 5 # 6086 6395',
17251         'STATE 6 l 6069 6396',
17252         'STATE 3 u 6072 6397',
17253         'STATE 3 c 6399 6398',
17254         'STATE 2 r 6069 6400',
17255         'STATE 6 c 6069 6401',
17256         'STATE 2 c 6072 6069',
17257         'STATE 2 i 6069 6077',
17258         'STATE 3 r 6069 6077',
17259         'STATE 3 r 6069 6402',
17260         'STATE 3 l 6076 6403',
17261         'STATE 3 v 6069 6076',
17262         'STATE 3 b 6077 6404',
17263         'STATE 5 t 6069 6405',
17264         'STATE 2 c 6069 6072',
17265         'STATE 6 a 6154 6069',
17266         'STATE 3 p 6069 6406',
17267         'STATE 5 c 6072 6407',
17268         'STATE 2 h 6107 6077',
17269         'STATE 6 a 6107 6408',
17270         'STATE 2 r 6107 6345',
17271         'STATE 6 l 6077 6409',
17272         'STATE 5 a 6411 6410',
17273         'STATE 4 n 6077 6412',
17274         'STATE 5 a 6414 6413',
17275         'STATE 5 h 6072 6415',
17276         'STATE 2 b 6086 6416',
17277         'STATE 6 # 6418 6417',
17278         'STATE 4 n 6420 6419',
17279         'STATE 2 t 6422 6421',
17280         'STATE 4 s 6132 6423',
17281         'STATE 2 w 6425 6424',
17282         'STATE 6 i 6107 6426',
17283         'STATE 2 h 6072 6086',
17284         'STATE 5 r 6428 6427',
17285         'STATE 3 e 6086 6429',
17286         'STATE 3 p 6431 6430',
17287         'STATE 2 n 6072 6432',
17288         'STATE 5 i 6434 6433',
17289         'STATE 3 e 6436 6435',
17290         'STATE 3 r 6076 6437',
17291         'STATE 6 # 6107 6438',
17292         'STATE 3 g 6107 6439',
17293         'STATE 2 e 6107 6440',
17294         'STATE 3 b 6072 6441',
17295         'STATE 3 m 6442 6077',
17296         'STATE 6 s 6444 6443',
17297         'STATE 6 n 6108 6445',
17298         'STATE 4 t 6446 6072',
17299         'STATE 3 e 6072 6447',
17300         'STATE 4 g 6132 6072',
17301         'STATE 6 l 6107 6072',
17302         'STATE 4 r 6072 6448',
17303         'STATE 2 # 6072 6449',
17304         'STATE 3 r 6451 6450',
17305         'STATE 2 # 6072 6452',
17306         'STATE 2 a 6076 6072',
17307         'STATE 3 n 6454 6453',
17308         'STATE 6 r 6069 6107',
17309         'STATE 6 s 6132 6455',
17310         'STATE 5 e 6086 6077',
17311         'STATE 4 d 6072 6086',
17312         'STATE 3 a 6154 6456',
17313         'STATE 6 u 6069 6457',
17314         'STATE 5 n 6069 6458',
17315         'STATE 2 e 6460 6459',
17316         'STATE 5 # 6462 6461',
17317         'STATE 6 # 6072 6463',
17318         'STATE 2 i 6086 6069',
17319         'STATE 5 u 6465 6464',
17320         'STATE 2 p 6072 6466',
17321         'STATE 3 t 6108 6467',
17322         'STATE 2 i 6108 6468',
17323         'STATE 2 a 6069 6469',
17324         'STATE 6 o 6069 6076',
17325         'STATE 3 z 6069 6470',
17326         'STATE 5 t 6472 6471',
17327         'STATE 3 g 6077 6473',
17328         'STATE 2 i 6475 6474',
17329         'STATE 2 s 6086 6476',
17330         'STATE 5 t 6072 6477',
17331         'STATE 6 o 6077 6478',
17332         'STATE 3 t 6479 6107',
17333         'STATE 5 y 6481 6480',
17334         'STATE 6 # 6483 6482',
17335         'STATE 4 m 6077 6484',
17336         'STATE 5 o 6486 6485',
17337         'STATE 6 # 6076 6487',
17338         'STATE 5 r 6489 6488',
17339         'STATE 2 a 6077 6086',
17340         'STATE 4 n 6491 6490',
17341         'STATE 4 s 6493 6492',
17342         'STATE 6 u 6108 6494',
17343         'STATE 6 # 6076 6495',
17344         'STATE 4 n 6497 6496',
17345         'STATE 4 n 6132 6072',
17346         'STATE 4 t 6132 6072',
17347         'STATE 5 # 6076 6072',
17348         'STATE 5 # 6132 6072',
17349         'STATE 2 r 6108 6086',
17350         'STATE 5 i 6499 6498',
17351         'STATE 2 0 6501 6500',
17352         'STATE 6 # 6077 6502',
17353         'STATE 6 # 6077 6503',
17354         'STATE 2 # 6072 6504',
17355         'STATE 5 o 6086 6072',
17356         'STATE 5 k 6506 6505',
17357         'STATE 6 s 6108 6507',
17358         'STATE 5 i 6076 6508',
17359         'STATE 5 h 6509 6076',
17360         'STATE 3 n 6076 6510',
17361         'STATE 2 n 6069 6511',
17362         'STATE 2 s 6107 6512',
17363         'STATE 3 d 6513 6108',
17364         'STATE 5 t 6515 6514',
17365         'STATE 6 e 6107 6077',
17366         'STATE 2 0 6517 6516',
17367         'STATE 4 n 6519 6518',
17368         'STATE 6 d 6072 6520',
17369         'STATE 6 r 6521 6072',
17370         'STATE 4 b 6523 6522',
17371         'STATE 3 e 6525 6524',
17372         'STATE 3 t 6108 6526',
17373         'STATE 2 e 6108 6527',
17374         'STATE 2 o 6077 6072',
17375         'STATE 2 a 6076 6528',
17376         'STATE 2 l 6107 6529',
17377         'STATE 2 u 6107 6072',
17378         'STATE 6 r 6132 6072',
17379         'STATE 5 h 6072 6530',
17380         'STATE 2 e 6531 6069',
17381         'STATE 2 e 6069 6086',
17382         'STATE 5 r 6154 6532',
17383         'STATE 5 # 6069 6533',
17384         'STATE 6 s 6086 6069',
17385         'STATE 2 o 6069 6086',
17386         'STATE 3 w 6072 6534',
17387         'STATE 2 c 6536 6535',
17388         'STATE 6 # 6086 6069',
17389         'STATE 6 y 6072 6537',
17390         'STATE 3 n 6154 6538',
17391         'STATE 2 s 6072 6069',
17392         'STATE 2 o 6069 6539',
17393         'STATE 2 l 6069 6540',
17394         'STATE 3 s 6076 6541',
17395         'STATE 6 z 6076 6542',
17396         'STATE 3 v 6077 6543',
17397         'STATE 3 c 6462 6544',
17398         'STATE 6 a 6086 6069',
17399         'STATE 3 g 6086 6545',
17400         'STATE 3 r 6069 6546',
17401         'STATE 6 t 6107 6547',
17402         'STATE 6 s 6107 6077',
17403         'STATE 5 h 6549 6548',
17404         'STATE 4 n 6550 6108',
17405         'STATE 6 t 6552 6551',
17406         'STATE 4 k 6107 6553',
17407         'STATE 5 o 6072 6554',
17408         'STATE 4 u 6189 6555',
17409         'STATE 6 # 6076 6556',
17410         'STATE 4 s 6077 6557',
17411         'STATE 6 # 6559 6558',
17412         'STATE 6 e 6132 6072',
17413         'STATE 5 t 6122 6560',
17414         'STATE 6 t 6108 6072',
17415         'STATE 2 h 6072 6561',
17416         'STATE 5 t 6108 6562',
17417         'STATE 6 # 6563 6072',
17418         'STATE 5 f 6077 6564',
17419         'STATE 2 f 6072 6565',
17420         'STATE 2 r 6086 6566',
17421         'STATE 5 # 6568 6567',
17422         'STATE 3 p 6077 6569',
17423         'STATE 3 m 6077 6086',
17424         'STATE 6 i 6077 6107',
17425         'STATE 6 l 6107 6570',
17426         'STATE 2 d 6086 6571',
17427         'STATE 6 t 6086 6072',
17428         'STATE 5 t 6573 6572',
17429         'STATE 2 e 6107 6574',
17430         'STATE 6 z 6108 6575',
17431         'STATE 5 s 6107 6576',
17432         'STATE 2 r 6132 6072',
17433         'STATE 3 t 6107 6076',
17434         'STATE 3 r 6578 6577',
17435         'STATE 3 d 6580 6579',
17436         'STATE 2 n 6108 6581',
17437         'STATE 6 # 6076 6582',
17438         'STATE 6 o 6107 6077',
17439         'STATE 4 g 6584 6583',
17440         'STATE 4 n 6077 6585',
17441         'STATE 4 g 6107 6586',
17442         'STATE 3 s 6588 6587',
17443         'STATE 6 s 6072 6589',
17444         'STATE 2 r 6077 6072',
17445         'STATE 3 t 6072 6590',
17446         'STATE 3 f 6072 6591',
17447         'STATE 3 u 6593 6592',
17448         'STATE 4 d 6072 6076',
17449         'STATE 2 a 6108 6594',
17450         'STATE 2 s 6596 6595',
17451         'STATE 3 t 6076 6597',
17452         'STATE 6 s 6599 6598',
17453         'STATE 5 s 6601 6600',
17454         'STATE 6 # 6602 6069',
17455         'STATE 6 s 6154 6603',
17456         'STATE 6 # 6069 6072',
17457         'STATE 5 l 6069 6604',
17458         'STATE 2 a 6606 6605',
17459         'STATE 6 # 6108 6076',
17460         'STATE 3 t 6069 6607',
17461         'STATE 2 b 6072 6608',
17462         'STATE 2 l 6069 6609',
17463         'STATE 2 a 6611 6610',
17464         'STATE 6 h 6613 6612',
17465         'STATE 3 v 6069 6614',
17466         'STATE 3 f 6077 6076',
17467         'STATE 3 v 6072 6069',
17468         'STATE 3 z 6069 6615',
17469         'STATE 6 i 6072 6110',
17470         'STATE 3 h 6077 6616',
17471         'STATE 5 o 6618 6617',
17472         'STATE 4 g 6072 6619',
17473         'STATE 6 # 6072 6077',
17474         'STATE 4 g 6621 6620',
17475         'STATE 4 v 6623 6622',
17476         'STATE 4 l 6624 6076',
17477         'STATE 5 a 6626 6625',
17478         'STATE 5 i 6628 6627',
17479         'STATE 4 k 6107 6629',
17480         'STATE 4 y 6076 6630',
17481         'STATE 5 u 6632 6631',
17482         'STATE 5 s 6077 6076',
17483         'STATE 2 c 6076 6633',
17484         'STATE 4 n 6076 6634',
17485         'STATE 5 s 6072 6077',
17486         'STATE 4 s 6072 6076',
17487         'STATE 5 i 6072 6635',
17488         'STATE 2 b 6132 6636',
17489         'STATE 2 b 6132 6072',
17490         'STATE 5 u 6638 6637',
17491         'STATE 3 e 6077 6639',
17492         'STATE 2 0 6072 6640',
17493         'STATE 2 # 6641 6072',
17494         'STATE 2 # 6643 6642',
17495         'STATE 6 i 6645 6644',
17496         'STATE 2 n 6077 6646',
17497         'STATE 2 r 6107 6647',
17498         'STATE 6 d 6108 6648',
17499         'STATE 5 t 6077 6649',
17500         'STATE 3 h 6107 6650',
17501         'STATE 2 f 6107 6108',
17502         'STATE 2 c 6652 6651',
17503         'STATE 2 a 6108 6107',
17504         'STATE 2 u 6107 6108',
17505         'STATE 5 c 6654 6653',
17506         'STATE 6 n 6656 6655',
17507         'STATE 6 n 6658 6657',
17508         'STATE 4 d 6660 6659',
17509         'STATE 4 l 6662 6661',
17510         'STATE 3 m 6108 6663',
17511         'STATE 2 u 6086 6069',
17512         'STATE 6 r 6072 6077',
17513         'STATE 6 r 6665 6664',
17514         'STATE 6 r 6077 6666',
17515         'STATE 4 t 6668 6667',
17516         'STATE 4 s 6086 6072',
17517         'STATE 3 s 6108 6669',
17518         'STATE 2 n 6108 6670',
17519         'STATE 3 t 6108 6072',
17520         'STATE 2 s 6072 6671',
17521         'STATE 6 # 6072 6672',
17522         'STATE 3 l 6077 6072',
17523         'STATE 3 f 6674 6673',
17524         'STATE 6 # 6675 6072',
17525         'STATE 5 n 6069 6154',
17526         'STATE 6 i 6069 6676',
17527         'STATE 3 l 6072 6069',
17528         'STATE 6 # 6678 6677',
17529         'STATE 3 n 6154 6679',
17530         'STATE 6 t 6069 6680',
17531         'STATE 3 l 6069 6681',
17532         'STATE 2 n 6069 6682',
17533         'STATE 2 t 6069 6683',
17534         'STATE 3 n 6069 6684',
17535         'STATE 6 b 6069 6076',
17536         'STATE 3 p 6069 6076',
17537         'STATE 6 r 6076 6685',
17538         'STATE 3 c 6687 6686',
17539         'STATE 6 i 6077 6688',
17540         'STATE 4 u 6690 6689',
17541         'STATE 6 # 6076 6691',
17542         'STATE 4 s 6693 6692',
17543         'STATE 4 v 6695 6694',
17544         'STATE 6 n 6107 6696',
17545         'STATE 2 c 6697 6108',
17546         'STATE 3 r 6072 6698',
17547         'STATE 3 u 6076 6699',
17548         'STATE 5 l 6701 6700',
17549         'STATE 6 l 6108 6702',
17550         'STATE 5 d 6704 6703',
17551         'STATE 6 n 6706 6705',
17552         'STATE 4 v 6107 6707',
17553         'STATE 6 t 6709 6708',
17554         'STATE 6 e 6077 6710',
17555         'STATE 6 r 6077 6069',
17556         'STATE 4 s 6072 6711',
17557         'STATE 5 y 6108 6712',
17558         'STATE 5 v 6077 6713',
17559         'STATE 4 l 6076 6714',
17560         'STATE 3 e 6716 6715',
17561         'STATE 6 s 6072 6077',
17562         'STATE 3 m 6077 6717',
17563         'STATE 6 c 6072 6718',
17564         'STATE 3 h 6077 6107',
17565         'STATE 2 e 6072 6719',
17566         'STATE 6 d 6132 6720',
17567         'STATE 5 o 6722 6721',
17568         'STATE 5 h 6076 6107',
17569         'STATE 6 s 6723 6077',
17570         'STATE 6 s 6725 6724',
17571         'STATE 6 n 6727 6726',
17572         'STATE 2 s 6729 6728',
17573         'STATE 2 a 6107 6730',
17574         'STATE 3 m 6731 6107',
17575         'STATE 3 t 6108 6107',
17576         'STATE 3 n 6077 6732',
17577         'STATE 6 i 6069 6077',
17578         'STATE 6 d 6734 6733',
17579         'STATE 2 e 6108 6735',
17580         'STATE 2 s 6737 6736',
17581         'STATE 3 l 6108 6738',
17582         'STATE 4 r 6107 6739',
17583         'STATE 6 o 6072 6132',
17584         'STATE 4 c 6596 6740',
17585         'STATE 2 o 6076 6072',
17586         'STATE 3 g 6108 6741',
17587         'STATE 3 l 6743 6742',
17588         'STATE 3 n 6132 6744',
17589         'STATE 6 l 6072 6077',
17590         'STATE 4 s 6746 6745',
17591         'STATE 2 i 6108 6747',
17592         'STATE 3 r 6108 6748',
17593         'STATE 3 v 6108 6749',
17594         'STATE 2 o 6076 6750',
17595         'STATE 2 0 6072 6751',
17596         'STATE 2 t 6753 6752',
17597         'STATE 2 i 6072 6069',
17598         'STATE 3 r 6076 6069',
17599         'STATE 2 l 6754 6069',
17600         'STATE 5 v 6076 6755',
17601         'STATE 5 f 6076 6756',
17602         'STATE 6 # 6069 6076',
17603         'STATE 6 # 6069 6757',
17604         'STATE 6 t 6069 6758',
17605         'STATE 2 e 6069 6759',
17606         'STATE 3 v 6069 6760',
17607         'STATE 3 v 6154 6069',
17608         'STATE 3 p 6072 6076',
17609         'STATE 3 x 6086 6069',
17610         'STATE 6 a 6069 6086',
17611         'STATE 2 m 6107 6761',
17612         'STATE 6 n 6763 6762',
17613         'STATE 6 # 6069 6764',
17614         'STATE 4 k 6107 6765',
17615         'STATE 2 s 6077 6766',
17616         'STATE 3 f 6077 6767',
17617         'STATE 6 s 6769 6768',
17618         'STATE 3 v 6072 6770',
17619         'STATE 3 r 6108 6580',
17620         'STATE 4 n 6108 6072',
17621         'STATE 2 o 6108 6771',
17622         'STATE 2 a 6077 6076',
17623         'STATE 4 g 6773 6772',
17624         'STATE 4 l 6077 6774',
17625         'STATE 6 n 6776 6775',
17626         'STATE 5 u 6778 6777',
17627         'STATE 4 d 6077 6779',
17628         'STATE 6 # 6076 6780',
17629         'STATE 4 s 6077 6781',
17630         'STATE 4 s 6077 6782',
17631         'STATE 6 r 6784 6783',
17632         'STATE 4 l 6132 6077',
17633         'STATE 5 a 6786 6785',
17634         'STATE 2 f 6108 6787',
17635         'STATE 4 t 6076 6788',
17636         'STATE 6 e 6790 6789',
17637         'STATE 2 r 6076 6563',
17638         'STATE 5 y 6072 6086',
17639         'STATE 2 w 6077 6086',
17640         'STATE 2 a 6086 6791',
17641         'STATE 6 l 6107 6792',
17642         'STATE 3 h 6107 6793',
17643         'STATE 3 g 6086 6794',
17644         'STATE 6 l 6796 6795',
17645         'STATE 2 0 6072 6797',
17646         'STATE 3 d 6107 6077',
17647         'STATE 2 i 6107 6798',
17648         'STATE 2 d 6107 6799',
17649         'STATE 2 e 6801 6800',
17650         'STATE 3 d 6108 6072',
17651         'STATE 3 w 6803 6802',
17652         'STATE 3 t 6077 6107',
17653         'STATE 6 b 6077 6804',
17654         'STATE 2 e 6108 6107',
17655         'STATE 5 i 6077 6805',
17656         'STATE 2 w 6072 6806',
17657         'STATE 4 t 6808 6807',
17658         'STATE 2 w 6072 6809',
17659         'STATE 3 r 6077 6107',
17660         'STATE 6 r 6072 6107',
17661         'STATE 2 e 6107 6108',
17662         'STATE 4 k 6072 6810',
17663         'STATE 4 f 6108 6811',
17664         'STATE 3 l 6072 6812',
17665         'STATE 4 p 6072 6813',
17666         'STATE 6 a 6077 6814',
17667         'STATE 4 t 6077 6815',
17668         'STATE 4 g 6107 6072',
17669         'STATE 2 a 6108 6816',
17670         'STATE 2 e 6072 6817',
17671         'STATE 2 o 6108 6509',
17672         'STATE 2 r 6077 6818',
17673         'STATE 3 v 6072 6819',
17674         'STATE 6 a 6107 6820',
17675         'STATE 3 e 6086 6821',
17676         'STATE 5 # 6069 6822',
17677         'STATE 6 # 6824 6823',
17678         'STATE 6 a 6076 6825',
17679         'STATE 2 t 6076 6826',
17680         'STATE 3 p 6076 6827',
17681         'STATE 6 c 6069 6828',
17682         'STATE 2 f 6069 6829',
17683         'STATE 2 p 6069 6830',
17684         'STATE 3 d 6107 6831',
17685         'STATE 4 k 6833 6832',
17686         'STATE 4 z 6072 6834',
17687         'STATE 6 p 6072 6265',
17688         'STATE 6 s 6836 6835',
17689         'STATE 6 o 6108 6837',
17690         'STATE 2 s 6077 6838',
17691         'STATE 4 k 6840 6839',
17692         'STATE 2 o 6108 6076',
17693         'STATE 3 r 6072 6841',
17694         'STATE 2 c 6108 6107',
17695         'STATE 4 s 6842 6077',
17696         'STATE 6 o 6077 6107',
17697         'STATE 6 e 6072 6843',
17698         'STATE 4 s 6077 6844',
17699         'STATE 4 v 6072 6107',
17700         'STATE 3 v 6846 6845',
17701         'STATE 4 l 6108 6847',
17702         'STATE 4 l 6849 6848',
17703         'STATE 4 v 6723 6850',
17704         'STATE 4 v 6723 6851',
17705         'STATE 3 s 6853 6852',
17706         'STATE 3 l 6077 6854',
17707         'STATE 3 b 6132 6855',
17708         'STATE 5 n 6857 6856',
17709         'STATE 3 g 6077 6858',
17710         'STATE 2 v 6086 6859',
17711         'STATE 2 n 6076 6860',
17712         'STATE 5 c 6077 6861',
17713         'STATE 5 t 6077 6086',
17714         'STATE 3 h 6086 6077',
17715         'STATE 2 # 6077 6862',
17716         'STATE 2 0 6107 6072',
17717         'STATE 3 m 6864 6863',
17718         'STATE 5 h 6866 6865',
17719         'STATE 2 r 6077 6867',
17720         'STATE 3 t 6069 6868',
17721         'STATE 3 r 6077 6869',
17722         'STATE 2 n 6107 6077',
17723         'STATE 6 a 6077 6870',
17724         'STATE 3 n 6108 6077',
17725         'STATE 2 l 6107 6871',
17726         'STATE 5 k 6872 6107',
17727         'STATE 2 l 6107 6873',
17728         'STATE 3 v 6077 6874',
17729         'STATE 6 r 6876 6875',
17730         'STATE 4 s 6072 6877',
17731         'STATE 2 i 6108 6878',
17732         'STATE 3 r 6880 6879',
17733         'STATE 6 n 6077 6881',
17734         'STATE 4 s 6072 6882',
17735         'STATE 3 b 6072 6883',
17736         'STATE 4 l 6885 6884',
17737         'STATE 4 c 6072 6886',
17738         'STATE 3 m 6077 6853',
17739         'STATE 3 m 6072 6887',
17740         'STATE 3 s 6072 6509',
17741         'STATE 2 i 6077 6108',
17742         'STATE 3 b 6072 6888',
17743         'STATE 6 t 6077 6889',
17744         'STATE 3 h 6069 6890',
17745         'STATE 5 n 6069 6891',
17746         'STATE 6 t 6154 6069',
17747         'STATE 5 m 6154 6069',
17748         'STATE 5 b 6076 6892',
17749         'STATE 2 s 6076 6675',
17750         'STATE 2 o 6069 6076',
17751         'STATE 6 n 6069 6679',
17752         'STATE 3 r 6072 6069',
17753         'STATE 3 d 6069 6893',
17754         'STATE 3 n 6107 6894',
17755         'STATE 4 g 6896 6895',
17756         'STATE 5 i 6076 6107',
17757         'STATE 4 m 6077 6897',
17758         'STATE 4 g 6899 6898',
17759         'STATE 4 t 6076 6900',
17760         'STATE 6 e 6902 6901',
17761         'STATE 6 # 6904 6903',
17762         'STATE 6 l 6906 6905',
17763         'STATE 6 w 6069 6907',
17764         'STATE 3 n 6107 6908',
17765         'STATE 6 i 6909 6077',
17766         'STATE 6 a 6077 6072',
17767         'STATE 6 r 6077 6072',
17768         'STATE 5 r 6911 6910',
17769         'STATE 4 b 6072 6912',
17770         'STATE 6 s 6914 6913',
17771         'STATE 3 f 6072 6915',
17772         'STATE 3 w 6072 6077',
17773         'STATE 4 p 6069 6077',
17774         'STATE 4 m 6916 6072',
17775         'STATE 6 r 6918 6917',
17776         'STATE 4 m 6077 6072',
17777         'STATE 3 d 6920 6919',
17778         'STATE 4 l 6108 6077',
17779         'STATE 3 d 6922 6921',
17780         'STATE 3 s 6924 6923',
17781         'STATE 3 l 6077 6925',
17782         'STATE 6 h 6086 6926',
17783         'STATE 5 a 6076 6927',
17784         'STATE 5 s 6077 6928',
17785         'STATE 6 # 6077 6929',
17786         'STATE 3 v 6077 6107',
17787         'STATE 6 b 6107 6077',
17788         'STATE 6 e 6931 6930',
17789         'STATE 2 c 6933 6932',
17790         'STATE 3 t 6077 6934',
17791         'STATE 3 n 6925 6935',
17792         'STATE 3 t 6077 6936',
17793         'STATE 3 l 6077 6937',
17794         'STATE 2 r 6107 6938',
17795         'STATE 2 d 6107 6939',
17796         'STATE 6 n 6940 6731',
17797         'STATE 5 a 6942 6941',
17798         'STATE 4 r 6944 6943',
17799         'STATE 4 k 6107 6945',
17800         'STATE 2 r 6108 6946',
17801         'STATE 2 e 6108 6072',
17802         'STATE 4 d 6948 6947',
17803         'STATE 2 b 6077 6072',
17804         'STATE 4 c 6072 6949',
17805         'STATE 2 i 6950 6072',
17806         'STATE 3 f 6072 6951',
17807         'STATE 3 w 6072 6952',
17808         'STATE 3 s 6072 6953',
17809         'STATE 4 f 6072 6954',
17810         'STATE 3 v 6072 6955',
17811         'STATE 3 d 6957 6956',
17812         'STATE 2 d 6072 6958',
17813         'STATE 5 # 6069 6959',
17814         'STATE 6 # 6072 6960',
17815         'STATE 5 f 6076 6961',
17816         'STATE 2 e 6069 6962',
17817         'STATE 6 l 6107 6963',
17818         'STATE 5 d 6965 6964',
17819         'STATE 5 # 6967 6966',
17820         'STATE 4 g 6077 6968',
17821         'STATE 4 v 6970 6969',
17822         'STATE 2 n 6077 6971',
17823         'STATE 3 h 6108 6972',
17824         'STATE 3 r 6077 6973',
17825         'STATE 3 r 6077 6108',
17826         'STATE 3 r 6975 6974',
17827         'STATE 3 k 6107 6976',
17828         'STATE 6 b 6978 6977',
17829         'STATE 3 r 6108 6979',
17830         'STATE 3 r 6108 6107',
17831         'STATE 6 r 6069 6980',
17832         'STATE 5 h 6107 6077',
17833         'STATE 5 l 6982 6981',
17834         'STATE 4 s 6077 6983',
17835         'STATE 6 a 6985 6984',
17836         'STATE 3 s 6077 6986',
17837         'STATE 4 s 6077 6072',
17838         'STATE 3 m 6988 6987',
17839         'STATE 3 d 6108 6077',
17840         'STATE 3 b 6108 6989',
17841         'STATE 4 m 6132 6990',
17842         'STATE 3 m 6992 6991',
17843         'STATE 4 m 6077 6108',
17844         'STATE 5 l 6107 6077',
17845         'STATE 6 t 6077 6107',
17846         'STATE 6 i 6077 6993',
17847         'STATE 6 a 6077 6994',
17848         'STATE 6 l 6069 6107',
17849         'STATE 2 h 6072 6995',
17850         'STATE 4 l 6072 6086',
17851         'STATE 5 t 6077 6072',
17852         'STATE 2 a 6086 6077',
17853         'STATE 5 y 6108 6996',
17854         'STATE 3 t 6108 6997',
17855         'STATE 6 o 6108 6998',
17856         'STATE 6 e 6069 6077',
17857         'STATE 3 d 6077 6108',
17858         'STATE 2 p 6108 6999',
17859         'STATE 2 t 6077 7000',
17860         'STATE 3 f 6077 7001',
17861         'STATE 2 h 6909 6107',
17862         'STATE 2 t 6077 6107',
17863         'STATE 3 f 6107 7002',
17864         'STATE 6 n 6077 7003',
17865         'STATE 3 r 6107 7004',
17866         'STATE 6 k 7006 7005',
17867         'STATE 3 d 6086 7007',
17868         'STATE 4 t 7009 7008',
17869         'STATE 3 t 6108 7010',
17870         'STATE 2 l 6107 6108',
17871         'STATE 2 i 6132 6108',
17872         'STATE 4 t 6072 6589',
17873         'STATE 3 c 6072 6108',
17874         'STATE 2 r 6076 7011',
17875         'STATE 3 s 7013 7012',
17876         'STATE 6 y 6072 7014',
17877         'STATE 4 k 6072 6988',
17878         'STATE 3 w 6072 7015',
17879         'STATE 2 l 6072 7016',
17880         'STATE 2 n 6072 6076',
17881         'STATE 6 r 7018 7017',
17882         'STATE 2 b 6069 7019',
17883         'STATE 6 s 6072 6069',
17884         'STATE 2 y 6076 7020',
17885         'STATE 2 o 6069 7021',
17886         'STATE 2 n 6077 7022',
17887         'STATE 5 i 7024 7023',
17888         'STATE 6 a 7026 7025',
17889         'STATE 5 n 7028 7027',
17890         'STATE 2 e 6107 7029',
17891         'STATE 5 i 7031 7030',
17892         'STATE 6 r 7033 7032',
17893         'STATE 2 r 6072 6077',
17894         'STATE 2 g 6107 7034',
17895         'STATE 4 n 6076 6108',
17896         'STATE 2 e 6108 6077',
17897         'STATE 6 m 6107 7035',
17898         'STATE 6 e 6107 7036',
17899         'STATE 2 a 6107 7037',
17900         'STATE 6 n 7039 7038',
17901         'STATE 2 s 6086 7040',
17902         'STATE 2 s 6108 7041',
17903         'STATE 2 l 6107 6077',
17904         'STATE 4 k 6442 7042',
17905         'STATE 4 l 6077 7043',
17906         'STATE 3 c 6077 7044',
17907         'STATE 5 c 7045 6077',
17908         'STATE 4 n 6077 7046',
17909         'STATE 6 l 6107 7047',
17910         'STATE 6 o 6077 7048',
17911         'STATE 4 n 6072 6077',
17912         'STATE 3 d 6988 7049',
17913         'STATE 3 m 6072 6108',
17914         'STATE 6 l 7051 7050',
17915         'STATE 6 s 6072 7052',
17916         'STATE 3 m 6077 6069',
17917         'STATE 6 i 6107 6072',
17918         'STATE 5 z 6072 7053',
17919         'STATE 3 m 6076 7054',
17920         'STATE 2 o 6108 6107',
17921         'STATE 3 m 6107 7055',
17922         'STATE 6 n 7056 6107',
17923         'STATE 2 q 6077 7057',
17924         'STATE 6 p 6077 7058',
17925         'STATE 2 e 6107 7059',
17926         'STATE 6 r 6072 7060',
17927         'STATE 6 r 6107 7061',
17928         'STATE 6 z 6076 7062',
17929         'STATE 4 c 6107 6077',
17930         'STATE 6 m 6072 7063',
17931         'STATE 2 a 6108 7064',
17932         'STATE 3 l 7066 7065',
17933         'STATE 2 a 6108 7067',
17934         'STATE 3 d 6069 7068',
17935         'STATE 4 s 6077 7069',
17936         'STATE 4 d 6072 6077',
17937         'STATE 3 f 6072 6916',
17938         'STATE 2 e 6132 6072',
17939         'STATE 3 f 6072 7070',
17940         'STATE 6 n 7072 7071',
17941         'STATE 2 # 6077 7073',
17942         'STATE 2 0 7074 6069',
17943         'STATE 5 c 6076 7075',
17944         'STATE 2 i 6069 7076',
17945         'STATE 2 a 6107 7077',
17946         'STATE 4 x 6107 7078',
17947         'STATE 6 # 6076 7079',
17948         'STATE 2 s 6077 7080',
17949         'STATE 2 r 6108 7081',
17950         'STATE 5 r 6108 7082',
17951         'STATE 6 o 7084 7083',
17952         'STATE 2 n 6107 7085',
17953         'STATE 5 u 6108 6077',
17954         'STATE 3 u 7087 7086',
17955         'STATE 4 s 7089 7088',
17956         'STATE 4 s 6072 7090',
17957         'STATE 6 t 6108 6907',
17958         'STATE 3 d 6107 7091',
17959         'STATE 6 m 6077 6107',
17960         'STATE 2 o 6107 7092',
17961         'STATE 2 l 7094 7093',
17962         'STATE 2 a 7096 7095',
17963         'STATE 4 t 6108 7097',
17964         'STATE 2 a 6108 7098',
17965         'STATE 3 d 7100 7099',
17966         'STATE 6 e 7102 7101',
17967         'STATE 3 m 6077 7103',
17968         'STATE 6 e 6077 6069',
17969         'STATE 5 l 6069 6077',
17970         'STATE 4 q 6501 7104',
17971         'STATE 6 # 6072 7105',
17972         'STATE 3 p 6072 7106',
17973         'STATE 3 f 7108 7107',
17974         'STATE 3 v 6072 7109',
17975         'STATE 4 h 6108 7110',
17976         'STATE 4 d 6072 7111',
17977         'STATE 3 r 6107 6773',
17978         'STATE 2 e 6107 7112',
17979         'STATE 2 i 6108 6107',
17980         'STATE 3 l 6077 7113',
17981         'STATE 6 o 6077 7114',
17982         'STATE 3 l 6107 6108',
17983         'STATE 3 d 6107 7115',
17984         'STATE 3 p 6107 6069',
17985         'STATE 6 m 7117 7116',
17986         'STATE 2 e 6072 6107',
17987         'STATE 3 r 6072 7118',
17988         'STATE 3 u 6086 6132',
17989         'STATE 2 l 6077 6076',
17990         'STATE 4 d 6072 7119',
17991         'STATE 3 h 6069 7120',
17992         'STATE 6 l 7122 7121',
17993         'STATE 2 e 6076 7123',
17994         'STATE 2 # 6072 7124',
17995         'STATE 3 g 6077 7125',
17996         'STATE 2 e 6077 7126',
17997         'STATE 5 n 6069 7127',
17998         'STATE 3 p 6076 7128',
17999         'STATE 2 n 6069 7129',
18000         'STATE 3 t 6107 7130',
18001         'STATE 4 n 7132 7131',
18002         'STATE 6 e 7134 7133',
18003         'STATE 3 u 6077 7135',
18004         'STATE 3 l 6076 6077',
18005         'STATE 5 s 7137 7136',
18006         'STATE 6 a 6161 7138',
18007         'STATE 3 s 6069 6077',
18008         'STATE 2 r 6107 7139',
18009         'STATE 4 v 7141 7140',
18010         'STATE 2 g 6072 7142',
18011         'STATE 6 u 6108 7143',
18012         'STATE 2 p 6077 6108',
18013         'STATE 4 m 6076 6108',
18014         'STATE 6 e 6107 7144',
18015         'STATE 2 i 6107 7145',
18016         'STATE 4 y 6108 7146',
18017         'STATE 3 l 6108 6069',
18018         'STATE 3 r 6108 7147',
18019         'STATE 4 t 6108 6069',
18020         'STATE 3 m 6108 6072',
18021         'STATE 3 m 6108 7148',
18022         'STATE 4 z 7150 7149',
18023         'STATE 4 f 7151 6077',
18024         'STATE 3 d 7152 6077',
18025         'STATE 4 n 6077 7153',
18026         'STATE 6 i 7155 7154',
18027         'STATE 4 s 6077 7156',
18028         'STATE 6 l 6077 7157',
18029         'STATE 3 k 7159 7158',
18030         'STATE 3 c 6077 7160',
18031         'STATE 6 n 6108 6077',
18032         'STATE 4 v 6072 7161',
18033         'STATE 4 l 6069 6077',
18034         'STATE 5 i 6076 7162',
18035         'STATE 6 s 6107 7163',
18036         'STATE 6 i 6077 7164',
18037         'STATE 6 t 6077 6072',
18038         'STATE 3 p 6107 6077',
18039         'STATE 6 e 6108 7165',
18040         'STATE 4 d 6108 7166',
18041         'STATE 4 s 6072 7167',
18042         'STATE 2 p 6072 7168',
18043         'STATE 2 a 6069 7169',
18044         'STATE 3 v 6077 7170',
18045         'STATE 3 f 6108 6077',
18046         'STATE 3 m 6108 7171',
18047         'STATE 6 d 6072 6077',
18048         'STATE 3 r 6077 6072',
18049         'STATE 3 r 6072 6077',
18050         'STATE 6 o 6069 6072',
18051         'STATE 2 n 6076 7172',
18052         'STATE 2 s 7173 6069',
18053         'STATE 2 l 6107 7174',
18054         'STATE 3 u 7176 7175',
18055         'STATE 5 k 6077 7177',
18056         'STATE 6 z 6108 7178',
18057         'STATE 4 v 6107 7179',
18058         'STATE 4 d 6077 7180',
18059         'STATE 5 m 6077 7181',
18060         'STATE 6 # 6077 6107',
18061         'STATE 2 n 6077 7182',
18062         'STATE 2 i 6107 7183',
18063         'STATE 2 c 6072 7184',
18064         'STATE 3 g 6077 6072',
18065         'STATE 4 s 6086 6108',
18066         'STATE 4 m 7186 7185',
18067         'STATE 6 i 6107 7187',
18068         'STATE 3 n 6077 7188',
18069         'STATE 2 c 7190 7189',
18070         'STATE 2 n 6108 7191',
18071         'STATE 3 g 6108 7192',
18072         'STATE 5 h 7194 7193',
18073         'STATE 3 p 6069 6077',
18074         'STATE 6 u 6108 6077',
18075         'STATE 4 s 6077 6108',
18076         'STATE 4 s 6077 7195',
18077         'STATE 6 a 6132 7196',
18078         'STATE 4 b 6072 6077',
18079         'STATE 6 r 6077 7197',
18080         'STATE 6 a 6077 7198',
18081         'STATE 6 n 6077 7199',
18082         'STATE 4 l 6077 6108',
18083         'STATE 4 t 7201 7200',
18084         'STATE 3 f 6072 6077',
18085         'STATE 5 o 6108 7202',
18086         'STATE 2 o 6107 6077',
18087         'STATE 2 k 6077 7203',
18088         'STATE 2 a 6108 7204',
18089         'STATE 4 c 6108 6072',
18090         'STATE 2 s 6072 7205',
18091         'STATE 4 n 6072 7206',
18092         'STATE 3 p 6069 7207',
18093         'STATE 3 p 6077 7208',
18094         'STATE 3 u 6072 7209',
18095         'STATE 2 m 6076 7210',
18096         'STATE 3 h 6069 6072',
18097         'STATE 3 v 6107 7211',
18098         'STATE 5 m 7213 7212',
18099         'STATE 2 q 7215 7214',
18100         'STATE 6 k 6077 7216',
18101         'STATE 6 o 7218 7217',
18102         'STATE 4 f 6108 7219',
18103         'STATE 2 a 6077 7220',
18104         'STATE 6 b 6108 7221',
18105         'STATE 3 s 6072 7222',
18106         'STATE 2 l 6107 7223',
18107         'STATE 4 f 6069 7224',
18108         'STATE 3 u 7226 7225',
18109         'STATE 6 t 6069 6108',
18110         'STATE 3 l 6077 6107',
18111         'STATE 3 t 6077 7227',
18112         'STATE 3 l 6108 7228',
18113         'STATE 3 l 6077 6108',
18114         'STATE 2 e 6108 7229',
18115         'STATE 3 n 6108 7230',
18116         'STATE 5 y 6550 7231',
18117         'STATE 3 n 6069 7232',
18118         'STATE 3 t 6072 7233',
18119         'STATE 4 t 6072 7234',
18120         'STATE 6 c 6108 6077',
18121         'STATE 3 k 6077 7235',
18122         'STATE 6 t 6077 7236',
18123         'STATE 4 j 6072 7237',
18124         'STATE 3 t 6072 6069',
18125         'STATE 6 n 6072 7238',
18126         'STATE 2 c 6077 7239',
18127         'STATE 4 n 7241 7240',
18128         'STATE 3 w 6072 7242',
18129         'STATE 3 f 6072 7243',
18130         'STATE 3 r 6076 7201',
18131         'STATE 4 m 6077 7244',
18132         'STATE 2 c 6076 7245',
18133         'STATE 3 h 6076 7246',
18134         'STATE 2 r 6107 7247',
18135         'STATE 3 h 7249 7248',
18136         'STATE 6 a 7250 6077',
18137         'STATE 4 t 7252 7251',
18138         'STATE 5 t 6077 7253',
18139         'STATE 2 u 7255 7254',
18140         'STATE 6 t 7257 7256',
18141         'STATE 4 t 6077 7258',
18142         'STATE 4 t 6108 7259',
18143         'STATE 3 w 6077 7260',
18144         'STATE 6 o 6077 7261',
18145         'STATE 3 l 6072 6077',
18146         'STATE 2 h 6107 7262',
18147         'STATE 2 w 6072 7263',
18148         'STATE 3 h 7265 7264',
18149         'STATE 4 n 6108 6086',
18150         'STATE 2 e 6077 7266',
18151         'STATE 4 s 6077 7267',
18152         'STATE 4 d 6108 7268',
18153         'STATE 4 p 6108 7269',
18154         'STATE 6 a 6077 7270',
18155         'STATE 4 s 6077 7271',
18156         'STATE 3 r 6072 7272',
18157         'STATE 4 b 6108 6077',
18158         'STATE 3 h 6077 7273',
18159         'STATE 3 w 6077 7274',
18160         'STATE 3 w 6072 7275',
18161         'STATE 5 a 6072 7276',
18162         'STATE 2 s 6077 6442',
18163         'STATE 2 i 7096 7277',
18164         'STATE 6 l 7279 7278',
18165         'STATE 4 c 6108 7280',
18166         'STATE 3 h 6108 7166',
18167         'STATE 3 c 6077 7281',
18168         'STATE 2 r 6076 7282',
18169         'STATE 2 h 6076 7283',
18170         'STATE 2 p 6107 7284',
18171         'STATE 4 q 7286 7285',
18172         'STATE 5 u 6108 7287',
18173         'STATE 2 a 6108 6077',
18174         'STATE 2 o 6069 7288',
18175         'STATE 2 c 6108 6086',
18176         'STATE 4 p 6077 7289',
18177         'STATE 3 u 7291 7290',
18178         'STATE 3 n 6077 7292',
18179         'STATE 6 a 7294 7293',
18180         'STATE 3 b 6077 7295',
18181         'STATE 4 s 6077 7296',
18182         'STATE 3 c 6077 7297',
18183         'STATE 6 # 6072 7298',
18184         'STATE 3 f 6077 7299',
18185         'STATE 3 s 6107 7300',
18186         'STATE 4 s 6072 7301',
18187         'STATE 2 t 6072 7302',
18188         'STATE 4 z 6072 6077',
18189         'STATE 3 r 7303 6107',
18190         'STATE 3 m 6108 7304',
18191         'STATE 2 p 6108 7305',
18192         'STATE 2 i 6072 7306',
18193         'STATE 6 o 6077 7307',
18194         'STATE 3 s 6072 7308',
18195         'STATE 3 s 6072 7155',
18196         'STATE 6 b 6077 7309',
18197         'STATE 4 n 6069 7310',
18198         'STATE 3 s 6072 7311',
18199         'STATE 6 a 6072 7312',
18200         'STATE 3 u 7314 7313',
18201         'STATE 6 t 6108 7315',
18202         'STATE 3 t 6108 6069',
18203         'STATE 3 u 6072 7316',
18204         'STATE 4 n 7318 7317',
18205         'STATE 3 s 6076 7319',
18206         'STATE 6 d 7321 7320',
18207         'STATE 3 f 6077 6107',
18208         'STATE 3 g 7323 7322',
18209         'STATE 6 i 6077 6076',
18210         'STATE 4 d 6108 7324',
18211         'STATE 5 # 6108 7325',
18212         'STATE 5 l 6077 7326',
18213         'STATE 5 c 7328 7327',
18214         'STATE 2 q 6077 7329',
18215         'STATE 5 # 7330 6108',
18216         'STATE 4 v 7332 7331',
18217         'STATE 4 f 6108 7333',
18218         'STATE 3 t 6077 7334',
18219         'STATE 2 n 6069 7335',
18220         'STATE 3 t 6108 6855',
18221         'STATE 6 s 6072 7336',
18222         'STATE 5 u 6076 6077',
18223         'STATE 3 t 6107 7337',
18224         'STATE 3 f 6072 7338',
18225         'STATE 2 o 7340 7339',
18226         'STATE 2 u 6107 6077',
18227         'STATE 3 n 6108 7341',
18228         'STATE 2 u 6108 7342',
18229         'STATE 4 t 6072 6108',
18230         'STATE 5 v 6077 7343',
18231         'STATE 6 d 6108 6077',
18232         'STATE 3 l 6077 7344',
18233         'STATE 3 l 6077 7345',
18234         'STATE 6 n 6108 7346',
18235         'STATE 4 f 6072 7347',
18236         'STATE 2 p 6072 7348',
18237         'STATE 2 g 6072 6069',
18238         'STATE 2 r 6108 6077',
18239         'STATE 4 b 7350 7349',
18240         'STATE 3 h 6072 7351',
18241         'STATE 6 t 7353 7352',
18242         'STATE 2 i 6108 7354',
18243         'STATE 3 r 6076 7355',
18244         'STATE 2 l 6076 7356',
18245         'STATE 6 i 7358 7357',
18246         'STATE 2 c 6077 7359',
18247         'STATE 2 w 6077 7360',
18248         'STATE 2 g 6077 7361',
18249         'STATE 5 # 6077 7362',
18250         'STATE 2 a 7364 7363',
18251         'STATE 2 i 6108 7365',
18252         'STATE 5 s 6108 7366',
18253         'STATE 3 b 6077 7367',
18254         'STATE 4 b 6108 7368',
18255         'STATE 3 t 6107 7369',
18256         'STATE 3 b 6076 7370',
18257         'STATE 2 a 6077 7371',
18258         'STATE 2 s 6077 7372',
18259         'STATE 3 m 6072 7373',
18260         'STATE 2 d 6107 7374',
18261         'STATE 2 a 6108 7375',
18262         'STATE 4 b 6108 7376',
18263         'STATE 4 l 6072 6108',
18264         'STATE 3 r 7378 7377',
18265         'STATE 2 i 6108 7379',
18266         'STATE 3 m 7380 6077',
18267         'STATE 3 v 6077 7381',
18268         'STATE 6 f 6077 7382',
18269         'STATE 3 r 6072 6108',
18270         'STATE 4 t 7384 7383',
18271         'STATE 3 m 6069 7385',
18272         'STATE 3 h 6077 7386',
18273         'STATE 2 e 6077 6108',
18274         'STATE 4 d 7388 7387',
18275         'STATE 3 m 6072 7161',
18276         'STATE 3 n 6072 6077',
18277         'STATE 3 p 6072 7389',
18278         'STATE 6 s 6076 6069',
18279         'STATE 2 d 6076 7390',
18280         'STATE 2 i 7392 7391',
18281         'STATE 4 z 6076 7393',
18282         'STATE 6 i 6077 7394',
18283         'STATE 4 s 7395 6077',
18284         'STATE 5 s 6108 6790',
18285         'STATE 4 t 6108 6077',
18286         'STATE 2 p 6077 7396',
18287         'STATE 3 t 6108 7397',
18288         'STATE 2 e 6077 7398',
18289         'STATE 5 # 6108 6077',
18290         'STATE 3 l 6077 7399',
18291         'STATE 4 f 7401 7400',
18292         'STATE 6 l 6077 7402',
18293         'STATE 3 u 6076 7403',
18294         'STATE 4 v 6077 7404',
18295         'STATE 2 o 6077 7405',
18296         'STATE 2 e 6077 7406',
18297         'STATE 3 w 6077 6107',
18298         'STATE 2 i 6108 7407',
18299         'STATE 4 p 6077 7408',
18300         'STATE 3 t 6108 7409',
18301         'STATE 6 r 6108 7410',
18302         'STATE 3 t 6108 7411',
18303         'STATE 4 t 7412 6077',
18304         'STATE 6 i 6072 6077',
18305         'STATE 6 s 6108 6077',
18306         'STATE 4 l 6072 6076',
18307         'STATE 5 h 6076 6072',
18308         'STATE 4 k 6072 7413',
18309         'STATE 4 f 7415 7414',
18310         'STATE 4 c 7416 6077',
18311         'STATE 3 r 6108 6077',
18312         'STATE 3 e 6076 7417',
18313         'STATE 2 g 6076 7418',
18314         'STATE 2 a 7420 7419',
18315         'STATE 6 a 7422 7421',
18316         'STATE 5 t 6077 7423',
18317         'STATE 2 r 7424 6108',
18318         'STATE 2 t 6077 7425',
18319         'STATE 3 x 6108 7426',
18320         'STATE 6 o 6108 7427',
18321         'STATE 6 i 6077 7428',
18322         'STATE 3 p 7429 6077',
18323         'STATE 6 v 7431 7430',
18324         'STATE 2 n 6077 7432',
18325         'STATE 3 d 6107 6108',
18326         'STATE 2 i 6077 7433',
18327         'STATE 2 q 6108 7434',
18328         'STATE 2 e 6076 7435',
18329         'STATE 6 i 6072 7436',
18330         'STATE 2 l 6108 7437',
18331         'STATE 6 l 6108 7438',
18332         'STATE 2 u 6069 7439',
18333         'STATE 6 c 6077 6108',
18334         'STATE 4 n 6108 7440',
18335         'STATE 6 u 6069 6077',
18336         'STATE 2 n 6108 7441',
18337         'STATE 2 n 6077 7442',
18338         'STATE 2 o 6077 6108',
18339         'STATE 3 d 6077 6072',
18340         'STATE 2 t 6072 7443',
18341         'STATE 2 t 6076 7444',
18342         'STATE 6 e 7446 7445',
18343         'STATE 5 t 7448 7447',
18344         'STATE 5 c 6077 7449',
18345         'STATE 4 t 6107 7450',
18346         'STATE 3 c 7452 7451',
18347         'STATE 5 l 6077 6108',
18348         'STATE 2 c 6077 7089',
18349         'STATE 6 o 7454 7453',
18350         'STATE 3 r 6077 7455',
18351         'STATE 6 h 6077 7456',
18352         'PHONE ae1',
18353         'STATE 6 s 7458 7457',
18354         'STATE 4 t 6108 6072',
18355         'STATE 6 c 7459 6108',
18356         'STATE 3 d 6076 6077',
18357         'STATE 3 m 6077 7460',
18358         'STATE 4 l 6077 6076',
18359         'STATE 3 l 7462 7461',
18360         'STATE 3 d 6108 7463',
18361         'STATE 4 n 7465 7464',
18362         'STATE 6 v 6108 7466',
18363         'STATE 3 n 6108 7467',
18364         'STATE 4 t 7469 7468',
18365         'STATE 4 m 6077 7470',
18366         'STATE 2 p 6076 7471',
18367         'STATE 2 f 6069 6076',
18368         'STATE 5 z 7473 7472',
18369         'STATE 4 b 7475 7474',
18370         'STATE 4 s 7477 7476',
18371         'STATE 3 t 6077 7478',
18372         'STATE 5 t 7480 7479',
18373         'STATE 4 d 6077 7159',
18374         'STATE 2 l 7452 7481',
18375         'STATE 4 p 6108 6077',
18376         'STATE 2 g 6077 7482',
18377         'STATE 2 e 6108 7483',
18378         'STATE 3 m 6077 7484',
18379         'STATE 6 t 6077 7485',
18380         'STATE 4 t 7487 7486',
18381         'STATE 4 t 7489 7488',
18382         'STATE 3 c 7491 7490',
18383         'STATE 4 m 6077 7492',
18384         'STATE 2 g 6072 7493',
18385         'STATE 2 b 6072 6077',
18386         'STATE 2 r 6108 7494',
18387         'STATE 6 m 6077 7495',
18388         'STATE 6 i 6108 7496',
18389         'STATE 6 d 6077 7497',
18390         'STATE 3 l 6108 7096',
18391         'STATE 6 a 6108 7498',
18392         'STATE 6 c 6108 7499',
18393         'STATE 4 p 6108 7500',
18394         'STATE 2 n 6076 6072',
18395         'STATE 5 u 7502 7501',
18396         'STATE 6 o 6076 6077',
18397         'STATE 3 t 7504 7503',
18398         'STATE 5 l 6108 6077',
18399         'STATE 5 # 7506 7505',
18400         'STATE 5 # 7508 7507',
18401         'STATE 6 s 6108 7509',
18402         'STATE 4 s 7511 7510',
18403         'STATE 3 n 6108 7512',
18404         'STATE 4 t 7514 7513',
18405         'STATE 2 e 7516 7515',
18406         'STATE 5 s 7190 6077',
18407         'STATE 3 b 6077 6916',
18408         'STATE 3 r 6077 7517',
18409         'STATE 4 h 6069 7518',
18410         'STATE 2 e 6077 7410',
18411         'STATE 4 n 7520 7519',
18412         'STATE 2 e 6076 6072',
18413         'STATE 2 g 6077 6108',
18414         'STATE 2 a 6077 6108',
18415         'STATE 4 p 6077 7521',
18416         'STATE 3 r 6077 7522',
18417         'STATE 4 k 6072 7523',
18418         'STATE 2 a 6108 7524',
18419         'STATE 6 v 6108 7250',
18420         'STATE 3 v 6077 7525',
18421         'STATE 2 o 6076 7526',
18422         'STATE 2 s 6072 6108',
18423         'STATE 2 r 6072 7527',
18424         'STATE 2 o 7529 7528',
18425         'STATE 4 t 6108 7530',
18426         'STATE 3 v 6077 7531',
18427         'STATE 2 s 6077 7532',
18428         'STATE 4 b 6108 7533',
18429         'STATE 4 d 6108 7534',
18430         'STATE 3 r 7536 7535',
18431         'STATE 3 x 6108 6077',
18432         'STATE 3 v 6077 7537',
18433         'STATE 6 e 6108 7538',
18434         'STATE 3 n 6069 6108',
18435         'STATE 3 v 6077 6108',
18436         'STATE 3 m 6077 7539',
18437         'STATE 5 r 6076 6077',
18438         'STATE 3 l 6077 7540',
18439         'STATE 3 m 6077 7541',
18440         'STATE 2 n 6077 6108',
18441         'STATE 3 r 6077 7542',
18442         'STATE 4 l 6108 7543',
18443         'STATE 2 d 6077 7544',
18444         'STATE 3 l 6108 7545',
18445         'STATE 2 n 6077 7546',
18446         'STATE 3 l 6072 7547',
18447         'STATE 3 p 6108 7548',
18448         'STATE 2 r 6108 7549',
18449         'STATE 4 s 6077 7550',
18450         'STATE 2 l 6108 7551',
18451         'STATE 6 h 7553 7552',
18452         'STATE 5 t 7555 7554',
18453         'STATE 4 f 6108 7556',
18454         'STATE 5 l 7558 7557',
18455         'STATE 4 t 6072 7559',
18456         'STATE 4 d 6108 7560',
18457         'STATE 4 l 6108 7561',
18458         'STATE 3 t 6108 7562',
18459         'STATE 5 s 6077 6108',
18460         'STATE 3 r 7563 6108',
18461         'STATE 4 b 6108 7564',
18462         'STATE 4 s 7565 6077',
18463         'STATE 3 k 7567 7566',
18464         'STATE 6 u 6077 7568',
18465         'STATE 4 d 6077 7569',
18466         'STATE 4 m 6108 6069',
18467         'STATE 3 f 6077 6818',
18468         'STATE 2 e 7122 6077',
18469         'STATE 6 r 6077 7570',
18470         'STATE 2 o 6108 7571',
18471         'STATE 6 n 6108 7572',
18472         'STATE 4 n 6077 7573',
18473         'STATE 2 s 6077 7574',
18474         'STATE 3 l 6072 7575',
18475         'STATE 5 r 7577 7576',
18476         'STATE 5 c 6077 7536',
18477         'STATE 3 s 6108 7578',
18478         'STATE 4 s 6108 6077',
18479         'STATE 6 s 6108 7579',
18480         'STATE 5 r 6108 7580',
18481         'STATE 4 l 6077 7581',
18482         'STATE 4 l 6077 7582',
18483         'STATE 6 d 6108 7583',
18484         'STATE 4 t 6108 6076',
18485         'STATE 6 a 6077 6107',
18486         'STATE 6 o 6077 6108',
18487         'STATE 5 s 6108 7584',
18488         'STATE 2 c 6077 7585',
18489         'STATE 5 # 7587 7586',
18490         'STATE 2 c 7366 6077',
18491         'STATE 3 d 6077 7588',
18492         'STATE 6 l 7590 7589',
18493         'STATE 6 e 6077 6072',
18494         'STATE 3 n 6072 7591',
18495         'STATE 3 t 6069 7592',
18496         'STATE 2 s 6108 7593',
18497         'STATE 3 r 7595 7594',
18498         'STATE 4 n 6077 6072',
18499         'STATE 2 e 7597 7596',
18500         'STATE 6 o 7598 6108',
18501         'STATE 4 d 6108 7599',
18502         'STATE 2 t 6077 7600',
18503         'STATE 2 l 6108 7601',
18504         'STATE 3 r 7013 7602',
18505         'STATE 5 l 6108 6069',
18506         'STATE 3 c 6108 7603',
18507         'STATE 6 # 6077 7604',
18508         'STATE 5 k 6077 6902',
18509         'STATE 5 f 6108 7605',
18510         'STATE 3 t 7607 7606',
18511         'STATE 3 n 6077 7608',
18512         'STATE 6 b 6077 7609',
18513         'STATE 3 s 6077 6069',
18514         'STATE 4 l 6072 7610',
18515         'STATE 3 r 6108 7611',
18516         'STATE 3 h 6077 6108',
18517         'STATE 2 l 6108 7612',
18518         'STATE 4 c 6108 7613',
18519         'STATE 4 d 7615 7614',
18520         'STATE 3 l 7617 7616',
18521         'STATE 4 p 6077 6108',
18522         'STATE 5 c 6108 7618',
18523         'STATE 2 s 6077 6108',
18524         'STATE 2 u 6108 7619',
18525         'STATE 4 p 6108 6132',
18526         'STATE 4 t 7621 7620',
18527         'STATE 5 p 6077 6108',
18528         'STATE 6 e 6077 7622',
18529         'STATE 3 d 6077 7623',
18530         'STATE 2 t 6077 7624',
18531         'STATE 3 l 6077 7625',
18532         'STATE 3 h 6077 7626',
18533         'STATE 3 c 6072 7627',
18534         'STATE 6 w 6077 6069',
18535         'STATE 3 h 6108 7628',
18536         'STATE 6 t 6108 6077',
18537         'STATE 4 s 7630 7629',
18538         'STATE 5 t 6077 7631',
18539         'STATE 6 r 6108 7632',
18540         'STATE 4 s 7633 6077',
18541         'STATE 3 f 6077 7634',
18542         'STATE 4 m 6077 7635',
18543         'STATE 3 x 6108 7636',
18544         'STATE 5 c 6077 7637',
18545         'STATE 5 s 6077 7638',
18546         'STATE 3 p 6077 7639',
18547         'STATE 2 s 6077 7517',
18548         'STATE 6 e 6108 6077',
18549         'STATE 4 l 7410 7640',
18550         'STATE 3 r 6072 7641',
18551         'STATE 2 e 6108 7166',
18552         'STATE 3 s 7643 7642',
18553         'STATE 3 r 7645 7644',
18554         'STATE 3 b 6077 7646',
18555         'STATE 5 # 7648 7647',
18556         'STATE 6 # 6108 7649',
18557         'STATE 3 t 6077 7650',
18558         'STATE 2 o 7652 7651',
18559         'STATE 6 # 7475 7653',
18560         'STATE 5 u 6077 7654',
18561         'STATE 5 n 6077 7655',
18562         'STATE 2 i 6902 7656',
18563         'STATE 2 n 6077 7657',
18564         'STATE 4 d 6108 6072',
18565         'STATE 2 r 7659 7658',
18566         'STATE 2 r 6077 6108',
18567         'STATE 5 # 7661 7660',
18568         'STATE 2 h 6077 7662',
18569         'STATE 2 r 6108 7663',
18570         'STATE 3 p 6077 7664',
18571         'STATE 4 l 6108 7665',
18572         'STATE 5 # 6077 6108',
18573         'STATE 3 l 7555 7666',
18574         'STATE 2 r 7388 7667',
18575         'STATE 5 t 6077 6108',
18576         'STATE 3 m 6077 7668',
18577         'STATE 5 z 6077 6108',
18578         'STATE 3 s 6077 7669',
18579         'STATE 2 y 6108 7670',
18580         'STATE 3 l 6077 7671',
18581         'STATE 2 c 6077 7672',
18582         'STATE 3 r 7652 7673',
18583         'STATE 3 t 7675 7674',
18584         'STATE 3 b 6077 7676',
18585         'STATE 5 c 6076 6077',
18586         'STATE 2 u 6108 7677',
18587         'STATE 3 d 7563 7678',
18588         'STATE 3 s 6108 7152',
18589         'STATE 3 d 6077 7679',
18590         'STATE 3 n 7555 6077',
18591         'STATE 6 l 6077 7159',
18592         'STATE 3 c 6077 7680',
18593         'STATE 2 r 6077 7681',
18594         'STATE 6 c 6077 7682',
18595         'STATE 2 u 7684 7683',
18596         'STATE 3 t 6076 7685',
18597         'STATE 3 n 6108 7686',
18598         'STATE 6 # 6108 7687',
18599         'STATE 2 l 6077 7688',
18600         'STATE 2 g 6077 7600',
18601         'STATE 3 n 6108 7689',
18602         'STATE 3 m 6108 7690',
18603         'STATE 2 n 6077 7691',
18604         'STATE 2 l 6077 7692',
18605         'STATE 3 m 6077 6108',
18606         'STATE 2 l 7452 7693',
18607         'STATE 5 # 7695 7694',
18608         'STATE 3 n 6108 7696',
18609         'STATE 6 o 7698 7697',
18610         'STATE 6 s 6108 6069',
18611         'STATE 2 y 6108 7699',
18612         'STATE 5 t 7701 7700',
18613         'STATE 4 t 6077 7702',
18614         'STATE 6 a 6108 6077',
18615         'STATE 3 b 7704 7703',
18616         'STATE 4 l 7706 7705',
18617         'STATE 6 # 6108 6077',
18618         'STATE 4 t 6077 6108',
18619         'STATE 4 t 7707 6077',
18620         'STATE 3 w 6077 7708',
18621         'STATE 5 c 6077 6108',
18622         'STATE 2 r 6077 7709',
18623         'STATE 3 r 7424 7710',
18624         'STATE 3 t 6108 7711',
18625         'STATE 3 b 6108 6077',
18626         'STATE 3 n 6077 7712',
18627         'STATE 2 o 6108 7713',
18628         'STATE 3 t 7714 6077',
18629         'STATE 3 c 7716 7715',
18630         'STATE 3 m 6108 6077',
18631         'STATE 3 s 6077 7717',
18632         'STATE 3 d 6077 7718',
18633         'STATE 6 a 6108 7719',
18634         'STATE 3 s 6077 7720',
18635         'STATE 2 n 7721 6077',
18636         'STATE 2 b 6108 6077',
18637         'STATE 2 n 6108 6077',
18638         'STATE 3 k 6077 7722',
18639         'STATE 2 s 6108 7424',
18640         'STATE 3 k 6077 7723',
18641         'STATE 3 t 7725 7724',
18642         'STATE 3 v 6108 6077',
18643         'STATE 3 x 6077 7726',
18644         'STATE 3 g 6077 6108',
18645         'STATE 2 b 6108 7727',
18646         'STATE 3 p 6077 7728',
18647         'STATE 2 u 6077 7729',
18648         'STATE 2 n 6077 7730',
18649         'STATE 4 s 6902 6077',
18650         'STATE 5 l 7732 7731',
18651         'STATE 6 s 6108 7733',
18652         'STATE 3 n 6077 7734',
18653         'STATE 2 t 6077 6108',
18654         'STATE 3 t 6077 7735',
18655         'STATE 3 b 6077 7736',
18656         'STATE 3 l 6077 7737',
18657         'STATE 3 s 6077 7190',
18658         'STATE 5 t 6108 6077',
18659         'STATE 2 s 7738 6077',
18660         'STATE 3 f 6108 7739',
18661         'STATE 3 t 7691 6077',
18662         'STATE 2 n 7740 6934',
18663         'STATE 6 r 6108 6077',
18664         'INDEX 7741 j',
18665         'STATE 3 # 7743 7742',
18666         'STATE 4 a 7745 7744',
18667         'PHONE jh',
18668         'STATE 3 n 7743 7746',
18669         'STATE 3 o 7748 7747',
18670         'STATE 3 d 7743 7749',
18671         'STATE 3 a 7743 7750',
18672         'PHONE y',
18673         'STATE 4 i 7743 7751',
18674         'STATE 3 e 7748 7752',
18675         'STATE 4 o 7754 7753',
18676         'STATE 3 u 7748 7743',
18677         'STATE 4 e 7743 7755',
18678         'STATE 3 s 7757 7756',
18679         'STATE 4 u 7743 7758',
18680         'STATE 3 b 7748 7743',
18681         'PHONE epsilon',
18682         'STATE 3 o 7757 7759',
18683         'STATE 4 k 7757 7760',
18684         'STATE 4 d 7757 7761',
18685         'STATE 3 e 7757 7743',
18686         'INDEX 7762 k',
18687         'STATE 4 n 7764 7763',
18688         'STATE 4 k 7766 7765',
18689         'STATE 1 0 7766 7767',
18690         'PHONE k',
18691         'PHONE epsilon',
18692         'STATE 1 n 7766 7765',
18693         'INDEX 7768 l',
18694         'STATE 4 l 7770 7769',
18695         'STATE 4 e 7772 7771',
18696         'STATE 5 # 7774 7773',
18697         'STATE 6 g 7776 7775',
18698         'STATE 3 b 7778 7777',
18699         'STATE 6 # 7774 7779',
18700         'PHONE epsilon',
18701         'STATE 4 k 7781 7780',
18702         'STATE 4 i 7783 7782',
18703         'STATE 5 # 7785 7784',
18704         'STATE 5 # 7787 7786',
18705         'STATE 2 t 7774 7788',
18706         'STATE 3 l 7790 7789',
18707         'STATE 3 a 7792 7791',
18708         'PHONE l',
18709         'STATE 3 l 7782 7793',
18710         'STATE 3 t 7795 7794',
18711         'STATE 3 l 7782 7796',
18712         'STATE 2 # 7782 7797',
18713         'PHONE ax-l',
18714         'STATE 6 k 7774 7798',
18715         'STATE 4 m 7800 7799',
18716         'STATE 6 0 7782 7801',
18717         'STATE 3 o 7802 7782',
18718         'STATE 2 w 7774 7803',
18719         'STATE 3 b 7787 7804',
18720         'STATE 6 # 7806 7805',
18721         'STATE 5 y 7782 7807',
18722         'STATE 3 a 7782 7808',
18723         'STATE 5 s 7787 7809',
18724         'STATE 3 a 7774 7810',
18725         'STATE 4 # 7812 7811',
18726         'STATE 3 a 7814 7813',
18727         'STATE 4 u 7815 7782',
18728         'STATE 2 f 7774 7816',
18729         'STATE 2 t 7774 7817',
18730         'STATE 3 g 7787 7818',
18731         'STATE 3 d 7820 7819',
18732         'STATE 5 y 7782 7821',
18733         'STATE 6 s 7782 7822',
18734         'STATE 3 i 7782 7823',
18735         'STATE 5 d 7787 7824',
18736         'STATE 6 l 7825 7774',
18737         'STATE 3 u 7827 7826',
18738         'STATE 3 d 7787 7828',
18739         'STATE 3 o 7829 7782',
18740         'STATE 5 # 7774 7830',
18741         'STATE 2 e 7831 7782',
18742         'STATE 5 # 7774 7782',
18743         'STATE 5 # 7774 7832',
18744         'STATE 3 t 7834 7833',
18745         'STATE 3 g 7836 7835',
18746         'STATE 6 s 7782 7837',
18747         'STATE 3 l 7782 7838',
18748         'STATE 5 r 7840 7839',
18749         'STATE 3 o 7782 7841',
18750         'STATE 5 y 7782 7842',
18751         'STATE 2 c 7782 7774',
18752         'STATE 4 f 7844 7843',
18753         'STATE 5 # 7845 7782',
18754         'STATE 3 t 7787 7846',
18755         'STATE 2 c 7774 7782',
18756         'STATE 5 a 7782 7847',
18757         'STATE 5 m 7782 7848',
18758         'STATE 5 a 7782 7849',
18759         'STATE 2 z 7787 7850',
18760         'STATE 2 r 7782 7851',
18761         'STATE 3 p 7853 7852',
18762         'STATE 2 # 7782 7854',
18763         'STATE 2 d 7787 7855',
18764         'STATE 3 i 7782 7856',
18765         'STATE 6 g 7782 7857',
18766         'STATE 2 i 7787 7858',
18767         'STATE 3 e 7782 7859',
18768         'STATE 2 a 7787 7860',
18769         'STATE 4 v 7862 7861',
18770         'STATE 2 h 7863 7782',
18771         'STATE 4 t 7864 7782',
18772         'STATE 3 g 7787 7865',
18773         'STATE 2 c 7774 7866',
18774         'STATE 5 l 7867 7782',
18775         'STATE 5 o 7782 7868',
18776         'STATE 3 p 7787 7869',
18777         'STATE 2 s 7782 7787',
18778         'STATE 3 k 7871 7870',
18779         'STATE 2 p 7873 7872',
18780         'STATE 5 c 7782 7874',
18781         'STATE 6 a 7787 7875',
18782         'STATE 3 a 7782 7876',
18783         'STATE 5 t 7782 7877',
18784         'STATE 2 s 7782 7878',
18785         'STATE 3 y 7782 7879',
18786         'STATE 2 u 7787 7880',
18787         'STATE 4 n 7829 7782',
18788         'STATE 3 a 7881 7782',
18789         'STATE 3 a 7774 7782',
18790         'STATE 2 a 7774 7782',
18791         'STATE 3 a 7782 7882',
18792         'STATE 2 b 7774 7881',
18793         'PHONE y',
18794         'STATE 2 f 7774 7883',
18795         'STATE 3 d 7885 7884',
18796         'STATE 3 z 7787 7782',
18797         'STATE 2 # 7782 7886',
18798         'STATE 5 c 7787 7782',
18799         'STATE 5 m 7782 7787',
18800         'STATE 6 s 7782 7887',
18801         'STATE 2 n 7787 7782',
18802         'STATE 3 e 7782 7888',
18803         'STATE 2 n 7787 7889',
18804         'STATE 2 u 7787 7782',
18805         'STATE 3 u 7782 7890',
18806         'STATE 6 s 7782 7891',
18807         'STATE 2 h 7774 7782',
18808         'STATE 3 e 7782 7892',
18809         'STATE 2 h 7774 7893',
18810         'STATE 3 f 7787 7894',
18811         'STATE 2 d 7787 7782',
18812         'STATE 6 s 7782 7895',
18813         'STATE 6 o 7787 7896',
18814         'STATE 3 o 7782 7897',
18815         'STATE 5 s 7787 7898',
18816         'STATE 3 r 7900 7899',
18817         'STATE 5 t 7782 7901',
18818         'STATE 3 i 7782 7902',
18819         'STATE 2 b 7774 7782',
18820         'STATE 3 s 7782 7903',
18821         'STATE 5 b 7787 7782',
18822         'STATE 6 a 7787 7904',
18823         'STATE 5 s 7906 7905',
18824         'STATE 5 d 7787 7907',
18825         'STATE 3 w 7782 7908',
18826         'STATE 2 a 7782 7787',
18827         'STATE 2 m 7782 7909',
18828         'STATE 2 c 7911 7910',
18829         'STATE 3 c 7912 7782',
18830         'STATE 6 e 7787 7913',
18831         'STATE 5 d 7915 7914',
18832         'STATE 3 y 7782 7916',
18833         'STATE 5 m 7787 7917',
18834         'STATE 3 s 7918 7787',
18835         'STATE 5 m 7782 7919',
18836         'STATE 3 u 7782 7920',
18837         'STATE 3 h 7787 7782',
18838         'STATE 2 # 7782 7787',
18839         'STATE 2 n 7782 7787',
18840         'STATE 5 r 7921 7782',
18841         'STATE 3 u 7782 7922',
18842         'STATE 3 u 7782 7923',
18843         'STATE 5 b 7787 7924',
18844         'STATE 2 i 7782 7787',
18845         'STATE 2 b 7782 7925',
18846         'STATE 3 o 7782 7926',
18847         'STATE 3 s 7851 7927',
18848         'STATE 3 w 7782 7928',
18849         'STATE 3 r 7782 7929',
18850         'STATE 6 e 7787 7930',
18851         'STATE 5 r 7787 7782',
18852         'STATE 3 h 7782 7931',
18853         'STATE 3 g 7933 7932',
18854         'STATE 3 r 7782 7934',
18855         'STATE 3 w 7782 7787',
18856         'STATE 2 t 7787 7782',
18857         'STATE 3 r 7782 7935',
18858         'STATE 3 d 7937 7936',
18859         'STATE 2 a 7782 7938',
18860         'STATE 2 n 7787 7939',
18861         'STATE 3 y 7782 7929',
18862         'STATE 2 c 7911 7940',
18863         'STATE 2 n 7782 7941',
18864         'STATE 2 e 7782 7942',
18865         'STATE 3 d 7787 7943',
18866         'STATE 3 f 7945 7944',
18867         'STATE 2 d 7782 7787',
18868         'STATE 2 n 7787 7946',
18869         'STATE 3 k 7787 7947',
18870         'STATE 3 p 7948 7782',
18871         'STATE 2 f 7782 7787',
18872         'STATE 2 i 7787 7782',
18873         'STATE 3 g 7787 7949',
18874         'STATE 2 p 7782 7787',
18875         'STATE 2 f 7787 7950',
18876         'STATE 2 z 7787 7951',
18877         'STATE 3 p 7787 7952',
18878         'STATE 3 c 7787 7782',
18879         'INDEX 7953 m',
18880         'STATE 4 m 7955 7954',
18881         'STATE 4 c 7957 7956',
18882         'PHONE epsilon',
18883         'STATE 3 s 7959 7958',
18884         'STATE 2 0 7961 7960',
18885         'STATE 4 l 7960 7962',
18886         'STATE 4 # 7964 7963',
18887         'PHONE m',
18888         'STATE 5 e 7966 7965',
18889         'STATE 3 h 7967 7960',
18890         'STATE 4 s 7964 7968',
18891         'PHONE ax-m',
18892         'STATE 5 i 7970 7969',
18893         'STATE 6 l 7970 7971',
18894         'STATE 2 t 7972 7960',
18895         'STATE 5 r 7973 7960',
18896         'PHONE m-ax',
18897         'PHONE m-ae1',
18898         'STATE 6 n 7970 7969',
18899         'STATE 6 0 7964 7960',
18900         'STATE 4 e 7974 7960',
18901         'STATE 2 e 7960 7964',
18902         'INDEX 7975 n',
18903         'STATE 4 g 7977 7976',
18904         'STATE 4 n 7979 7978',
18905         'STATE 5 # 7981 7980',
18906         'STATE 4 k 7983 7982',
18907         'STATE 2 m 7985 7984',
18908         'STATE 5 e 7987 7986',
18909         'PHONE ng',
18910         'STATE 4 c 7989 7988',
18911         'STATE 6 m 7991 7990',
18912         'STATE 6 s 7985 7992',
18913         'PHONE epsilon',
18914         'STATE 5 i 7994 7993',
18915         'STATE 6 r 7996 7995',
18916         'STATE 4 q 7998 7997',
18917         'STATE 5 t 7981 7999',
18918         'STATE 5 n 8001 8000',
18919         'PHONE n',
18920         'STATE 5 i 7985 8002',
18921         'STATE 5 r 8004 8003',
18922         'STATE 2 # 7991 8005',
18923         'STATE 6 # 7991 8006',
18924         'STATE 2 s 7991 8007',
18925         'STATE 4 x 7981 7991',
18926         'STATE 2 # 7991 8008',
18927         'STATE 5 k 7981 8009',
18928         'STATE 6 y 7981 8010',
18929         'STATE 2 # 7991 7981',
18930         'STATE 2 y 7985 8011',
18931         'STATE 6 g 7991 8012',
18932         'STATE 6 a 7991 8013',
18933         'STATE 6 b 7991 8014',
18934         'STATE 6 s 7991 8015',
18935         'STATE 2 r 7981 8016',
18936         'STATE 6 e 7981 7991',
18937         'STATE 5 e 7991 8017',
18938         'STATE 5 i 7981 8018',
18939         'STATE 2 # 7985 8019',
18940         'STATE 5 y 7991 7981',
18941         'STATE 6 o 7991 7981',
18942         'STATE 6 a 7991 8020',
18943         'STATE 2 l 8022 8021',
18944         'STATE 2 h 7981 8023',
18945         'STATE 5 # 7981 8024',
18946         'STATE 6 p 7991 7981',
18947         'STATE 2 i 7985 8025',
18948         'STATE 2 m 7981 8026',
18949         'STATE 6 l 8028 8027',
18950         'STATE 6 n 7981 8029',
18951         'STATE 2 n 7981 8030',
18952         'STATE 5 i 7991 8031',
18953         'STATE 2 b 8032 7985',
18954         'STATE 2 l 7981 8033',
18955         'STATE 6 o 7991 8034',
18956         'STATE 2 v 7991 7981',
18957         'STATE 6 l 7981 7991',
18958         'STATE 2 f 7981 8035',
18959         'STATE 5 y 7991 8036',
18960         'STATE 6 # 8037 7985',
18961         'STATE 2 b 7981 8038',
18962         'STATE 6 a 7991 8039',
18963         'STATE 2 w 7981 8040',
18964         'STATE 5 h 8042 8041',
18965         'STATE 5 e 7991 7985',
18966         'STATE 2 v 7981 8043',
18967         'STATE 2 t 7991 8044',
18968         'STATE 2 g 7991 7981',
18969         'STATE 6 # 8046 8045',
18970         'STATE 6 e 7991 8047',
18971         'STATE 6 n 8048 7991',
18972         'STATE 2 r 7991 8049',
18973         'STATE 6 l 8051 8050',
18974         'STATE 5 a 7981 8052',
18975         'STATE 2 s 7981 7991',
18976         'STATE 2 r 7981 7991',
18977         'STATE 6 m 7981 8053',
18978         'STATE 2 d 7981 8054',
18979         'STATE 5 a 7991 7981',
18980         'STATE 2 i 7991 8055',
18981         'STATE 6 d 7991 8056',
18982         'STATE 6 s 7991 8057',
18983         'STATE 2 r 7991 7981',
18984         'STATE 2 # 7991 8058',
18985         'STATE 2 r 8059 7991',
18986         'STATE 6 n 7981 7991',
18987         'STATE 6 i 7991 8060',
18988         'STATE 5 o 7981 7991',
18989         'INDEX 8061 o',
18990         'STATE 4 r 8063 8062',
18991         'STATE 4 # 8065 8064',
18992         'STATE 1 0 8067 8066',
18993         'STATE 3 o 8069 8068',
18994         'STATE 3 o 8071 8070',
18995         'STATE 1 # 8073 8072',
18996         'STATE 3 w 8075 8074',
18997         'STATE 4 o 8077 8076',
18998         'STATE 4 d 8079 8078',
18999         'STATE 3 a 8081 8080',
19000         'PHONE uw1',
19001         'STATE 5 # 8083 8082',
19002         'STATE 3 o 8085 8084',
19003         'STATE 3 c 8087 8086',
19004         'PHONE epsilon',
19005         'STATE 4 u 8089 8088',
19006         'STATE 3 c 8090 8075',
19007         'STATE 4 k 8092 8091',
19008         'STATE 2 l 8094 8093',
19009         'STATE 3 g 8096 8095',
19010         'PHONE aw1',
19011         'STATE 3 w 8098 8097',
19012         'STATE 3 c 8100 8099',
19013         'STATE 2 s 8100 8101',
19014         'STATE 2 d 8100 8102',
19015         'STATE 5 r 8104 8103',
19016         'STATE 5 r 8105 8100',
19017         'STATE 4 n 8107 8106',
19018         'STATE 5 s 8109 8108',
19019         'STATE 5 r 8096 8075',
19020         'STATE 2 f 8111 8110',
19021         'STATE 1 s 8113 8112',
19022         'STATE 2 f 8071 8114',
19023         'PHONE ah1',
19024         'STATE 3 d 8096 8115',
19025         'PHONE ow',
19026         'STATE 5 s 8117 8116',
19027         'STATE 2 a 8075 8118',
19028         'STATE 3 o 8120 8119',
19029         'PHONE ao1',
19030         'STATE 2 f 8122 8121',
19031         'STATE 2 c 8100 8120',
19032         'STATE 5 e 8124 8123',
19033         'STATE 6 o 8126 8125',
19034         'STATE 6 i 8100 8127',
19035         'STATE 4 w 8129 8128',
19036         'STATE 5 # 8131 8130',
19037         'STATE 5 r 8133 8132',
19038         'STATE 6 e 8135 8134',
19039         'STATE 2 w 8137 8136',
19040         'STATE 4 t 8120 8071',
19041         'STATE 1 b 8138 8120',
19042         'STATE 5 # 8120 8071',
19043         'STATE 2 w 8120 8139',
19044         'STATE 3 n 8096 8140',
19045         'STATE 5 e 8142 8141',
19046         'STATE 6 # 8075 8143',
19047         'STATE 2 s 8144 8075',
19048         'STATE 3 t 8075 8145',
19049         'PHONE uh1',
19050         'STATE 3 m 8075 8146',
19051         'STATE 3 i 8147 8100',
19052         'STATE 5 a 8149 8148',
19053         'STATE 3 n 8100 8150',
19054         'STATE 6 y 8100 8151',
19055         'STATE 3 b 8152 8100',
19056         'STATE 6 o 8075 8153',
19057         'STATE 4 i 8155 8154',
19058         'STATE 6 k 8100 8156',
19059         'STATE 3 i 8158 8157',
19060         'STATE 3 i 8160 8159',
19061         'STATE 5 g 8162 8161',
19062         'STATE 3 h 8164 8163',
19063         'STATE 1 0 8166 8165',
19064         'STATE 3 h 8081 8167',
19065         'STATE 2 c 8071 8168',
19066         'STATE 4 l 8120 8071',
19067         'STATE 6 # 8169 8120',
19068         'STATE 2 g 8120 8170',
19069         'STATE 2 l 8096 8171',
19070         'STATE 5 f 8173 8172',
19071         'STATE 3 m 8175 8174',
19072         'STATE 6 h 8075 8176',
19073         'STATE 5 t 8075 8100',
19074         'STATE 2 a 8177 8075',
19075         'STATE 2 p 8100 8178',
19076         'PHONE ao',
19077         'STATE 5 o 8180 8179',
19078         'STATE 6 i 8075 8181',
19079         'STATE 6 # 8100 8182',
19080         'STATE 6 e 8183 8100',
19081         'PHONE aa1',
19082         'STATE 6 a 8075 8184',
19083         'STATE 4 y 8186 8185',
19084         'STATE 5 s 8188 8187',
19085         'STATE 5 # 8190 8189',
19086         'STATE 5 e 8192 8191',
19087         'STATE 2 t 8160 8193',
19088         'STATE 3 s 8195 8194',
19089         'PHONE ax',
19090         'STATE 5 t 8197 8196',
19091         'STATE 2 o 8096 8198',
19092         'STATE 3 t 8120 8199',
19093         'STATE 1 0 8081 8200',
19094         'STATE 1 # 8201 8160',
19095         'STATE 6 s 8075 8202',
19096         'STATE 1 # 8081 8203',
19097         'STATE 1 # 8071 8204',
19098         'PHONE uh',
19099         'STATE 2 h 8120 8113',
19100         'STATE 3 t 8205 8096',
19101         'STATE 5 t 8207 8206',
19102         'STATE 3 d 8147 8075',
19103         'STATE 6 d 8209 8208',
19104         'STATE 6 # 8211 8210',
19105         'STATE 6 t 8212 8100',
19106         'STATE 3 d 8100 8075',
19107         'STATE 5 o 8075 8213',
19108         'STATE 6 g 8215 8214',
19109         'STATE 3 b 8075 8216',
19110         'STATE 3 m 8218 8217',
19111         'STATE 6 a 8100 8219',
19112         'STATE 3 f 8100 8220',
19113         'STATE 6 u 8075 8100',
19114         'STATE 5 e 8222 8221',
19115         'STATE 5 o 8224 8223',
19116         'STATE 6 g 8226 8225',
19117         'STATE 2 # 8228 8227',
19118         'STATE 5 n 8230 8229',
19119         'STATE 1 # 8232 8231',
19120         'STATE 5 g 8234 8233',
19121         'STATE 6 # 8236 8235',
19122         'STATE 5 e 8238 8237',
19123         'STATE 3 t 8160 8239',
19124         'STATE 1 a 8240 8160',
19125         'STATE 5 n 8242 8241',
19126         'STATE 2 0 8081 8243',
19127         'STATE 2 # 8245 8244',
19128         'STATE 6 t 8247 8246',
19129         'PHONE aw',
19130         'STATE 2 t 8081 8075',
19131         'STATE 3 c 8075 8248',
19132         'STATE 1 0 8081 8249',
19133         'STATE 5 h 8250 8071',
19134         'STATE 1 r 8096 8251',
19135         'STATE 5 m 8253 8252',
19136         'STATE 3 f 8255 8254',
19137         'STATE 6 t 8075 8256',
19138         'STATE 2 a 8075 8257',
19139         'STATE 6 d 8075 8147',
19140         'STATE 1 r 8147 8258',
19141         'STATE 2 n 8100 8147',
19142         'STATE 3 h 8100 8259',
19143         'STATE 6 o 8261 8260',
19144         'STATE 2 # 8100 8075',
19145         'STATE 3 d 8100 8262',
19146         'STATE 3 d 8147 8263',
19147         'STATE 6 n 8147 8264',
19148         'STATE 6 h 8100 8265',
19149         'STATE 3 t 8100 8266',
19150         'STATE 2 # 8268 8267',
19151         'STATE 4 v 8270 8269',
19152         'STATE 6 m 8096 8271',
19153         'STATE 3 t 8096 8272',
19154         'STATE 5 r 8274 8273',
19155         'STATE 3 d 8071 8275',
19156         'STATE 6 # 8277 8276',
19157         'STATE 3 l 8278 8272',
19158         'STATE 2 # 8280 8279',
19159         'STATE 3 d 8081 8281',
19160         'STATE 3 k 8283 8282',
19161         'STATE 3 l 8275 8284',
19162         'STATE 3 c 8286 8285',
19163         'STATE 3 c 8288 8287',
19164         'STATE 1 0 8290 8289',
19165         'STATE 3 g 8100 8291',
19166         'STATE 6 c 8152 8292',
19167         'STATE 6 # 8275 8293',
19168         'STATE 2 g 8160 8294',
19169         'STATE 2 i 8295 8160',
19170         'STATE 5 l 8297 8296',
19171         'STATE 3 y 8075 8298',
19172         'STATE 6 # 8081 8299',
19173         'STATE 1 # 8301 8300',
19174         'STATE 3 d 8303 8302',
19175         'STATE 6 # 8305 8304',
19176         'STATE 3 c 8100 8147',
19177         'STATE 3 h 8081 8306',
19178         'STATE 3 r 8081 8075',
19179         'STATE 4 t 8071 8075',
19180         'STATE 1 h 8275 8096',
19181         'STATE 3 f 8308 8307',
19182         'STATE 6 a 8309 8100',
19183         'STATE 6 u 8075 8310',
19184         'STATE 6 # 8075 8311',
19185         'STATE 6 l 8147 8312',
19186         'STATE 2 o 8075 8313',
19187         'STATE 2 r 8100 8147',
19188         'STATE 5 g 8100 8314',
19189         'STATE 5 t 8316 8315',
19190         'STATE 3 f 8318 8317',
19191         'STATE 6 n 8075 8319',
19192         'STATE 6 # 8100 8320',
19193         'STATE 6 l 8100 8075',
19194         'STATE 6 y 8100 8321',
19195         'STATE 3 b 8147 8100',
19196         'STATE 5 f 8323 8322',
19197         'STATE 4 m 8325 8324',
19198         'STATE 6 # 8327 8326',
19199         'STATE 2 0 8329 8328',
19200         'STATE 1 0 8272 8330',
19201         'PHONE oy1',
19202         'STATE 5 a 8332 8331',
19203         'STATE 1 0 8272 8277',
19204         'PHONE ow1',
19205         'STATE 3 l 8272 8333',
19206         'PHONE w',
19207         'PHONE oy',
19208         'STATE 1 # 8335 8334',
19209         'STATE 6 l 8337 8336',
19210         'STATE 3 t 8081 8338',
19211         'STATE 3 n 8096 8339',
19212         'STATE 1 a 8096 8200',
19213         'STATE 3 r 8275 8081',
19214         'STATE 1 0 8341 8340',
19215         'STATE 6 # 8343 8342',
19216         'STATE 1 0 8345 8344',
19217         'STATE 6 e 8160 8346',
19218         'STATE 1 # 8348 8347',
19219         'STATE 6 y 8350 8349',
19220         'STATE 3 d 8351 8275',
19221         'STATE 1 # 8160 8352',
19222         'STATE 6 t 8096 8160',
19223         'STATE 2 n 8354 8353',
19224         'PHONE aa',
19225         'STATE 5 d 8356 8355',
19226         'STATE 2 o 8160 8357',
19227         'STATE 1 l 8075 8358',
19228         'STATE 3 m 8360 8359',
19229         'STATE 2 r 8362 8361',
19230         'STATE 2 t 8100 8363',
19231         'STATE 3 c 8100 8364',
19232         'STATE 6 h 8275 8075',
19233         'STATE 3 j 8075 8365',
19234         'STATE 2 e 8169 8366',
19235         'STATE 6 t 8081 8075',
19236         'STATE 5 a 8368 8367',
19237         'STATE 6 # 8075 8369',
19238         'STATE 1 a 8100 8370',
19239         'STATE 1 r 8100 8371',
19240         'STATE 2 m 8075 8100',
19241         'STATE 2 l 8100 8372',
19242         'STATE 3 l 8100 8075',
19243         'STATE 3 l 8100 8373',
19244         'STATE 3 f 8375 8374',
19245         'STATE 6 r 8147 8376',
19246         'STATE 3 t 8147 8100',
19247         'STATE 5 g 8147 8100',
19248         'STATE 3 m 8075 8100',
19249         'STATE 2 # 8378 8377',
19250         'STATE 3 s 8100 8379',
19251         'STATE 4 a 8381 8380',
19252         'STATE 4 f 8383 8382',
19253         'STATE 4 e 8385 8384',
19254         'STATE 3 c 8387 8386',
19255         'STATE 1 0 8389 8388',
19256         'STATE 4 m 8390 8275',
19257         'STATE 3 r 8392 8391',
19258         'STATE 6 r 8275 8094',
19259         'STATE 3 u 8272 8393',
19260         'STATE 5 c 8395 8394',
19261         'STATE 6 # 8275 8096',
19262         'STATE 3 a 8081 8396',
19263         'STATE 6 t 8160 8397',
19264         'STATE 2 s 8275 8398',
19265         'STATE 3 h 8081 8399',
19266         'STATE 5 a 8200 8400',
19267         'STATE 1 # 8402 8401',
19268         'STATE 3 h 8404 8403',
19269         'STATE 6 c 8406 8405',
19270         'STATE 3 n 8408 8407',
19271         'STATE 5 a 8152 8409',
19272         'STATE 5 i 8275 8152',
19273         'STATE 1 # 8411 8410',
19274         'STATE 6 o 8413 8412',
19275         'STATE 6 r 8152 8160',
19276         'STATE 6 s 8415 8414',
19277         'STATE 2 l 8075 8416',
19278         'STATE 2 # 8418 8417',
19279         'STATE 3 h 8094 8419',
19280         'STATE 2 r 8275 8094',
19281         'STATE 2 s 8160 8420',
19282         'STATE 3 m 8160 8421',
19283         'STATE 3 d 8160 8422',
19284         'STATE 5 c 8424 8423',
19285         'STATE 3 b 8075 8425',
19286         'STATE 6 d 8275 8426',
19287         'STATE 6 # 8075 8427',
19288         'STATE 6 s 8081 8428',
19289         'STATE 1 0 8081 8160',
19290         'STATE 2 t 8100 8429',
19291         'STATE 1 u 8096 8200',
19292         'STATE 3 r 8081 8430',
19293         'STATE 3 r 8075 8431',
19294         'STATE 6 a 8075 8432',
19295         'STATE 1 0 8081 8433',
19296         'STATE 6 z 8075 8434',
19297         'STATE 6 # 8100 8435',
19298         'STATE 5 c 8100 8436',
19299         'STATE 2 r 8100 8437',
19300         'STATE 2 p 8100 8438',
19301         'STATE 3 f 8100 8439',
19302         'STATE 5 t 8100 8440',
19303         'STATE 6 z 8075 8441',
19304         'STATE 5 g 8443 8442',
19305         'STATE 6 e 8444 8100',
19306         'STATE 6 t 8100 8445',
19307         'STATE 3 l 8100 8446',
19308         'STATE 3 k 8100 8447',
19309         'STATE 5 # 8449 8448',
19310         'STATE 5 r 8100 8450',
19311         'STATE 3 k 8147 8451',
19312         'STATE 6 # 8453 8452',
19313         'STATE 4 a 8455 8454',
19314         'STATE 5 r 8100 8456',
19315         'STATE 5 a 8458 8457',
19316         'STATE 5 f 8094 8459',
19317         'STATE 4 m 8461 8460',
19318         'STATE 4 m 8463 8462',
19319         'STATE 3 s 8160 8464',
19320         'STATE 3 m 8071 8465',
19321         'STATE 2 p 8467 8466',
19322         'STATE 2 e 8469 8468',
19323         'STATE 6 c 8275 8470',
19324         'STATE 6 e 8272 8471',
19325         'STATE 1 o 8160 8472',
19326         'STATE 6 c 8160 8473',
19327         'STATE 3 n 8275 8474',
19328         'STATE 3 c 8081 8475',
19329         'STATE 5 e 8152 8081',
19330         'STATE 6 e 8275 8476',
19331         'STATE 3 r 8081 8275',
19332         'STATE 3 d 8096 8477',
19333         'STATE 2 c 8096 8275',
19334         'STATE 5 i 8479 8478',
19335         'STATE 5 i 8152 8096',
19336         'STATE 5 t 8481 8480',
19337         'STATE 5 t 8295 8482',
19338         'STATE 1 0 8484 8483',
19339         'STATE 6 # 8486 8485',
19340         'STATE 2 s 8094 8100',
19341         'STATE 6 a 8152 8487',
19342         'STATE 3 m 8152 8295',
19343         'STATE 6 l 8096 8488',
19344         'STATE 1 i 8096 8275',
19345         'STATE 2 e 8152 8275',
19346         'PHONE w-ah1',
19347         'STATE 3 n 8152 8489',
19348         'STATE 3 m 8094 8275',
19349         'STATE 6 # 8490 8160',
19350         'STATE 1 # 8152 8491',
19351         'STATE 1 i 8160 8492',
19352         'STATE 6 t 8494 8493',
19353         'STATE 3 t 8075 8495',
19354         'STATE 3 r 8081 8496',
19355         'STATE 6 t 8275 8497',
19356         'STATE 2 # 8081 8498',
19357         'STATE 1 # 8081 8499',
19358         'STATE 3 l 8200 8500',
19359         'STATE 2 s 8075 8081',
19360         'STATE 3 t 8075 8501',
19361         'STATE 6 i 8075 8502',
19362         'STATE 2 a 8100 8075',
19363         'STATE 3 u 8120 8503',
19364         'STATE 1 a 8505 8504',
19365         'STATE 6 a 8100 8506',
19366         'STATE 3 f 8075 8100',
19367         'STATE 3 t 8100 8507',
19368         'STATE 3 c 8100 8508',
19369         'STATE 5 n 8100 8509',
19370         'STATE 6 n 8100 8510',
19371         'STATE 5 b 8443 8100',
19372         'STATE 6 i 8075 8100',
19373         'STATE 2 # 8100 8147',
19374         'STATE 6 n 8147 8100',
19375         'STATE 3 f 8100 8511',
19376         'STATE 6 t 8147 8512',
19377         'STATE 5 a 8514 8513',
19378         'STATE 4 s 8516 8515',
19379         'STATE 2 b 8518 8517',
19380         'STATE 3 w 8169 8519',
19381         'STATE 6 s 8100 8520',
19382         'STATE 3 l 8147 8521',
19383         'STATE 5 a 8523 8522',
19384         'STATE 5 r 8100 8524',
19385         'STATE 6 r 8100 8525',
19386         'STATE 5 o 8527 8526',
19387         'STATE 3 w 8120 8528',
19388         'STATE 5 p 8530 8529',
19389         'STATE 4 k 8275 8531',
19390         'STATE 3 w 8533 8532',
19391         'STATE 4 s 8535 8534',
19392         'STATE 3 h 8275 8536',
19393         'STATE 3 c 8094 8275',
19394         'STATE 3 n 8538 8537',
19395         'STATE 1 # 8275 8539',
19396         'STATE 1 # 8540 8071',
19397         'STATE 5 # 8541 8272',
19398         'STATE 5 # 8542 8278',
19399         'STATE 1 h 8096 8543',
19400         'STATE 6 h 8096 8275',
19401         'STATE 6 e 8277 8096',
19402         'STATE 2 k 8545 8544',
19403         'STATE 2 p 8081 8546',
19404         'STATE 3 d 8081 8547',
19405         'STATE 3 r 8275 8548',
19406         'STATE 2 g 8275 8549',
19407         'STATE 2 f 8551 8550',
19408         'STATE 6 a 8275 8552',
19409         'STATE 5 a 8554 8553',
19410         'STATE 3 m 8556 8555',
19411         'STATE 5 a 8152 8557',
19412         'STATE 2 e 8559 8558',
19413         'STATE 6 e 8561 8560',
19414         'STATE 3 l 8100 8562',
19415         'STATE 3 r 8100 8563',
19416         'STATE 6 i 8096 8564',
19417         'STATE 3 p 8275 8565',
19418         'STATE 3 d 8152 8566',
19419         'STATE 5 s 8160 8275',
19420         'STATE 2 r 8568 8567',
19421         'STATE 1 o 8160 8569',
19422         'STATE 5 f 8571 8570',
19423         'STATE 5 e 8075 8081',
19424         'STATE 6 h 8081 8572',
19425         'STATE 3 l 8081 8573',
19426         'STATE 3 f 8081 8574',
19427         'STATE 3 r 8081 8575',
19428         'STATE 6 e 8573 8576',
19429         'STATE 2 b 8200 8577',
19430         'STATE 6 h 8579 8578',
19431         'STATE 3 b 8581 8580',
19432         'STATE 5 o 8583 8582',
19433         'STATE 6 t 8075 8584',
19434         'STATE 3 t 8096 8100',
19435         'STATE 5 g 8075 8585',
19436         'STATE 1 e 8586 8100',
19437         'STATE 2 n 8075 8587',
19438         'STATE 6 # 8100 8588',
19439         'STATE 3 k 8100 8589',
19440         'STATE 3 b 8100 8590',
19441         'STATE 3 m 8592 8591',
19442         'STATE 4 e 8594 8593',
19443         'STATE 6 # 8596 8595',
19444         'STATE 4 e 8598 8597',
19445         'STATE 1 o 8600 8599',
19446         'STATE 3 r 8602 8601',
19447         'STATE 5 d 8100 8275',
19448         'STATE 4 l 8604 8603',
19449         'STATE 1 # 8606 8605',
19450         'STATE 1 # 8100 8607',
19451         'STATE 4 l 8609 8608',
19452         'STATE 6 # 8275 8610',
19453         'STATE 6 u 8096 8275',
19454         'STATE 5 w 8152 8275',
19455         'STATE 5 i 8152 8611',
19456         'STATE 6 l 8160 8612',
19457         'STATE 6 l 8160 8613',
19458         'STATE 5 m 8615 8614',
19459         'STATE 6 a 8160 8616',
19460         'STATE 4 x 8152 8617',
19461         'STATE 6 t 8619 8618',
19462         'PHONE ih1',
19463         'STATE 6 r 8621 8620',
19464         'STATE 3 l 8152 8622',
19465         'STATE 3 s 8094 8623',
19466         'STATE 3 p 8152 8624',
19467         'STATE 6 l 8152 8625',
19468         'STATE 2 g 8275 8160',
19469         'STATE 6 n 8275 8071',
19470         'STATE 1 r 8278 8626',
19471         'STATE 3 r 8278 8272',
19472         'STATE 5 e 8277 8627',
19473         'STATE 3 p 8081 8628',
19474         'STATE 1 c 8152 8275',
19475         'STATE 5 d 8081 8629',
19476         'STATE 3 p 8081 8630',
19477         'STATE 1 0 8081 8275',
19478         'STATE 2 d 8632 8631',
19479         'STATE 1 # 8634 8633',
19480         'STATE 5 t 8635 8152',
19481         'STATE 6 # 8275 8636',
19482         'STATE 5 i 8638 8637',
19483         'STATE 6 # 8275 8639',
19484         'STATE 6 i 8295 8152',
19485         'STATE 6 e 8152 8640',
19486         'STATE 5 v 8295 8641',
19487         'STATE 5 i 8275 8642',
19488         'STATE 1 # 8152 8160',
19489         'STATE 5 n 8644 8643',
19490         'STATE 5 c 8160 8645',
19491         'STATE 3 r 8100 8152',
19492         'STATE 1 a 8100 8646',
19493         'STATE 3 l 8100 8647',
19494         'STATE 6 y 8649 8648',
19495         'STATE 3 m 8152 8275',
19496         'STATE 2 a 8651 8650',
19497         'STATE 1 a 8652 8160',
19498         'STATE 1 a 8160 8653',
19499         'STATE 1 0 8654 8075',
19500         'STATE 6 f 8275 8160',
19501         'STATE 6 e 8075 8275',
19502         'STATE 1 0 8081 8075',
19503         'STATE 3 c 8081 8655',
19504         'STATE 1 e 8081 8656',
19505         'STATE 3 s 8081 8657',
19506         'STATE 1 t 8075 8658',
19507         'STATE 6 e 8081 8075',
19508         'STATE 3 l 8081 8659',
19509         'STATE 1 # 8075 8660',
19510         'STATE 6 n 8662 8661',
19511         'STATE 6 a 8664 8663',
19512         'STATE 6 u 8075 8665',
19513         'STATE 3 m 8666 8075',
19514         'STATE 6 s 8075 8100',
19515         'STATE 2 x 8100 8667',
19516         'STATE 6 # 8100 8668',
19517         'STATE 2 a 8670 8669',
19518         'STATE 6 a 8317 8671',
19519         'STATE 6 n 8147 8672',
19520         'STATE 6 n 8674 8673',
19521         'STATE 6 l 8075 8147',
19522         'STATE 4 s 8676 8675',
19523         'STATE 3 h 8678 8677',
19524         'STATE 6 t 8680 8679',
19525         'STATE 3 e 8152 8681',
19526         'STATE 4 m 8683 8682',
19527         'STATE 3 l 8275 8684',
19528         'STATE 1 # 8096 8685',
19529         'STATE 3 l 8160 8096',
19530         'STATE 5 d 8275 8686',
19531         'STATE 6 h 8275 8687',
19532         'STATE 3 h 8275 8152',
19533         'STATE 6 i 8275 8096',
19534         'STATE 1 0 8689 8688',
19535         'STATE 2 r 8100 8690',
19536         'STATE 3 h 8692 8691',
19537         'STATE 5 i 8694 8693',
19538         'STATE 5 l 8696 8695',
19539         'STATE 3 k 8698 8697',
19540         'STATE 5 b 8699 8152',
19541         'STATE 3 k 8096 8700',
19542         'STATE 3 h 8275 8701',
19543         'STATE 5 b 8703 8702',
19544         'STATE 6 o 8152 8160',
19545         'STATE 6 i 8160 8704',
19546         'STATE 6 d 8706 8705',
19547         'STATE 6 s 8464 8707',
19548         'STATE 1 # 8708 8152',
19549         'STATE 4 x 8152 8709',
19550         'STATE 2 # 8710 8152',
19551         'STATE 6 n 8275 8711',
19552         'STATE 3 c 8713 8712',
19553         'STATE 3 s 8275 8714',
19554         'STATE 6 r 8275 8096',
19555         'STATE 2 n 8278 8715',
19556         'STATE 6 e 8272 8716',
19557         'STATE 2 r 8718 8717',
19558         'STATE 3 l 8720 8719',
19559         'STATE 5 r 8100 8721',
19560         'STATE 2 f 8275 8722',
19561         'STATE 3 l 8275 8096',
19562         'STATE 5 a 8724 8723',
19563         'STATE 5 o 8726 8725',
19564         'STATE 6 e 8094 8727',
19565         'STATE 6 z 8729 8728',
19566         'STATE 5 y 8275 8730',
19567         'STATE 6 n 8732 8731',
19568         'STATE 3 m 8152 8733',
19569         'STATE 6 a 8096 8152',
19570         'STATE 5 r 8295 8734',
19571         'STATE 2 b 8152 8735',
19572         'STATE 5 r 8152 8736',
19573         'STATE 6 i 8160 8152',
19574         'STATE 5 v 8160 8737',
19575         'STATE 2 e 8100 8738',
19576         'STATE 6 u 8094 8739',
19577         'STATE 1 a 8293 8160',
19578         'STATE 1 m 8275 8160',
19579         'STATE 1 d 8160 8740',
19580         'STATE 1 e 8160 8741',
19581         'STATE 3 d 8100 8160',
19582         'STATE 3 n 8160 8295',
19583         'STATE 5 e 8152 8742',
19584         'STATE 3 s 8075 8743',
19585         'STATE 1 a 8081 8744',
19586         'STATE 3 b 8075 8745',
19587         'STATE 3 d 8075 8081',
19588         'STATE 3 b 8081 8100',
19589         'STATE 1 r 8147 8746',
19590         'STATE 1 0 8747 8100',
19591         'STATE 1 0 8100 8120',
19592         'STATE 5 p 8749 8748',
19593         'STATE 5 i 8100 8750',
19594         'STATE 3 b 8075 8751',
19595         'STATE 1 m 8075 8752',
19596         'STATE 3 p 8100 8147',
19597         'STATE 2 s 8100 8753',
19598         'STATE 3 n 8100 8754',
19599         'STATE 5 e 8100 8075',
19600         'STATE 3 m 8756 8755',
19601         'STATE 3 h 8147 8100',
19602         'STATE 6 c 8147 8757',
19603         'STATE 3 l 8147 8100',
19604         'STATE 4 l 8759 8758',
19605         'STATE 5 i 8761 8760',
19606         'STATE 1 # 8763 8762',
19607         'STATE 2 s 8071 8764',
19608         'STATE 3 w 8120 8765',
19609         'STATE 1 h 8075 8766',
19610         'STATE 3 s 8275 8767',
19611         'STATE 1 # 8769 8768',
19612         'STATE 3 c 8770 8559',
19613         'STATE 1 i 8275 8771',
19614         'STATE 1 i 8096 8772',
19615         'STATE 1 # 8275 8773',
19616         'STATE 1 e 8096 8404',
19617         'STATE 1 i 8160 8100',
19618         'STATE 6 e 8160 8644',
19619         'STATE 2 s 8152 8774',
19620         'STATE 2 c 8100 8775',
19621         'STATE 2 t 8100 8776',
19622         'STATE 5 o 8778 8777',
19623         'STATE 4 v 8780 8779',
19624         'STATE 5 o 8782 8781',
19625         'STATE 3 c 8784 8783',
19626         'STATE 3 l 8786 8785',
19627         'STATE 6 k 8275 8787',
19628         'STATE 6 a 8789 8788',
19629         'STATE 6 g 8096 8275',
19630         'STATE 6 # 8275 8790',
19631         'STATE 6 n 8160 8791',
19632         'STATE 6 e 8275 8160',
19633         'STATE 6 r 8152 8792',
19634         'STATE 6 s 8794 8793',
19635         'STATE 4 p 8160 8795',
19636         'STATE 3 r 8797 8796',
19637         'STATE 2 g 8160 8152',
19638         'STATE 4 d 8799 8798',
19639         'STATE 3 m 8801 8800',
19640         'STATE 6 t 8160 8275',
19641         'STATE 3 p 8152 8802',
19642         'STATE 6 d 8160 8094',
19643         'STATE 3 c 8804 8803',
19644         'STATE 1 e 8272 8805',
19645         'STATE 5 d 8806 8272',
19646         'STATE 2 l 8808 8807',
19647         'STATE 3 r 8096 8275',
19648         'STATE 2 b 8081 8809',
19649         'STATE 6 r 8081 8275',
19650         'STATE 3 n 8081 8810',
19651         'STATE 2 k 8200 8811',
19652         'STATE 5 t 8813 8812',
19653         'STATE 6 # 8275 8814',
19654         'STATE 2 l 8075 8815',
19655         'STATE 2 p 8160 8816',
19656         'STATE 6 a 8160 8094',
19657         'STATE 6 o 8275 8817',
19658         'STATE 3 r 8075 8160',
19659         'STATE 3 w 8819 8818',
19660         'STATE 6 e 8275 8820',
19661         'STATE 3 b 8096 8275',
19662         'STATE 6 g 8152 8821',
19663         'STATE 5 b 8152 8822',
19664         'STATE 5 t 8824 8823',
19665         'STATE 5 d 8826 8825',
19666         'STATE 5 t 8160 8827',
19667         'STATE 3 s 8100 8147',
19668         'STATE 3 m 8094 8100',
19669         'STATE 3 p 8152 8828',
19670         'STATE 3 n 8160 8829',
19671         'STATE 3 b 8075 8830',
19672         'STATE 6 s 8081 8075',
19673         'STATE 1 # 8081 8831',
19674         'STATE 3 c 8075 8832',
19675         'STATE 6 e 8075 8100',
19676         'STATE 6 g 8169 8075',
19677         'STATE 5 d 8834 8833',
19678         'STATE 2 t 8147 8835',
19679         'STATE 5 g 8100 8836',
19680         'STATE 6 # 8100 8837',
19681         'STATE 2 e 8100 8075',
19682         'STATE 2 a 8100 8313',
19683         'STATE 2 d 8100 8075',
19684         'STATE 6 e 8839 8838',
19685         'STATE 5 i 8840 8100',
19686         'STATE 3 f 8100 8841',
19687         'STATE 1 # 8843 8842',
19688         'STATE 6 g 8845 8844',
19689         'STATE 5 k 8847 8846',
19690         'STATE 6 t 8849 8848',
19691         'STATE 1 0 8275 8850',
19692         'STATE 5 r 8100 8851',
19693         'STATE 1 s 8275 8852',
19694         'STATE 1 # 8854 8853',
19695         'STATE 3 n 8160 8855',
19696         'STATE 4 l 8856 8275',
19697         'STATE 4 v 8858 8857',
19698         'STATE 4 l 8160 8152',
19699         'STATE 1 n 8152 8859',
19700         'STATE 3 h 8275 8096',
19701         'STATE 3 i 8861 8860',
19702         'STATE 6 s 8275 8862',
19703         'STATE 3 r 8152 8160',
19704         'STATE 3 t 8147 8863',
19705         'STATE 1 e 8100 8147',
19706         'STATE 4 h 8865 8864',
19707         'STATE 6 # 8275 8866',
19708         'STATE 4 x 8152 8867',
19709         'STATE 3 m 8071 8868',
19710         'STATE 5 i 8870 8869',
19711         'STATE 6 r 8094 8871',
19712         'STATE 3 r 8873 8872',
19713         'STATE 6 a 8160 8874',
19714         'STATE 3 b 8876 8875',
19715         'STATE 4 c 8275 8877',
19716         'STATE 6 l 8160 8878',
19717         'STATE 3 d 8160 8879',
19718         'STATE 3 b 8295 8152',
19719         'STATE 3 t 8881 8880',
19720         'STATE 6 t 8275 8152',
19721         'STATE 6 o 8160 8882',
19722         'STATE 6 r 8884 8883',
19723         'STATE 4 c 8152 8885',
19724         'STATE 2 i 8160 8886',
19725         'STATE 2 g 8152 8887',
19726         'STATE 1 # 8275 8096',
19727         'STATE 6 n 8889 8888',
19728         'STATE 6 l 8891 8890',
19729         'STATE 3 t 8152 8892',
19730         'STATE 4 d 8152 8275',
19731         'STATE 3 d 8893 8275',
19732         'STATE 1 0 8895 8894',
19733         'STATE 6 r 8094 8896',
19734         'STATE 2 l 8897 8272',
19735         'STATE 3 v 8272 8898',
19736         'STATE 3 d 8900 8899',
19737         'STATE 3 l 8901 8275',
19738         'STATE 3 r 8902 8081',
19739         'STATE 5 a 8904 8903',
19740         'STATE 2 t 8906 8905',
19741         'STATE 3 p 8152 8907',
19742         'STATE 6 e 8566 8908',
19743         'STATE 2 c 8152 8909',
19744         'STATE 2 i 8075 8910',
19745         'STATE 3 r 8275 8160',
19746         'STATE 6 u 8275 8911',
19747         'STATE 6 p 8160 8912',
19748         'STATE 6 e 8094 8152',
19749         'STATE 3 m 8152 8913',
19750         'STATE 3 b 8152 8914',
19751         'STATE 6 u 8295 8915',
19752         'STATE 2 c 8152 8916',
19753         'STATE 6 e 8160 8917',
19754         'STATE 5 q 8152 8918',
19755         'STATE 6 u 8160 8919',
19756         'STATE 5 f 8160 8920',
19757         'STATE 2 t 8922 8921',
19758         'STATE 3 r 8160 8923',
19759         'STATE 5 k 8081 8924',
19760         'STATE 6 c 8081 8925',
19761         'STATE 3 r 8075 8926',
19762         'STATE 3 t 8928 8927',
19763         'STATE 6 e 8100 8929',
19764         'STATE 3 c 8100 8930',
19765         'STATE 1 r 8100 8837',
19766         'STATE 2 o 8075 8100',
19767         'STATE 6 l 8931 8100',
19768         'STATE 5 d 8100 8932',
19769         'STATE 6 s 8100 8147',
19770         'STATE 6 l 8147 8100',
19771         'STATE 6 # 8934 8933',
19772         'STATE 5 o 8936 8935',
19773         'STATE 5 d 8938 8937',
19774         'STATE 1 0 8152 8939',
19775         'STATE 1 0 8941 8940',
19776         'STATE 6 i 8081 8942',
19777         'STATE 6 s 8275 8943',
19778         'STATE 3 p 8944 8152',
19779         'STATE 2 h 8275 8945',
19780         'STATE 5 b 8275 8946',
19781         'STATE 5 n 8160 8096',
19782         'STATE 1 0 8948 8947',
19783         'STATE 4 p 8950 8949',
19784         'STATE 1 a 8160 8951',
19785         'STATE 1 r 8275 8952',
19786         'STATE 4 l 8954 8953',
19787         'STATE 2 o 8152 8295',
19788         'STATE 1 r 8152 8955',
19789         'STATE 3 g 8096 8956',
19790         'STATE 2 r 8096 8275',
19791         'STATE 5 k 8275 8957',
19792         'STATE 1 o 8147 8958',
19793         'STATE 4 s 8960 8959',
19794         'STATE 5 r 8100 8961',
19795         'STATE 4 x 8152 8962',
19796         'STATE 6 t 8152 8963',
19797         'STATE 6 t 8160 8964',
19798         'STATE 5 y 8966 8965',
19799         'STATE 6 n 8968 8967',
19800         'STATE 3 c 8893 8969',
19801         'STATE 6 u 8160 8970',
19802         'STATE 6 e 8275 8971',
19803         'STATE 6 e 8160 8972',
19804         'STATE 4 s 8974 8973',
19805         'STATE 4 l 8275 8975',
19806         'STATE 6 t 8096 8976',
19807         'STATE 4 l 8160 8977',
19808         'STATE 3 t 8071 8152',
19809         'STATE 6 i 8096 8978',
19810         'STATE 6 s 8096 8152',
19811         'STATE 6 e 8160 8979',
19812         'STATE 1 # 8981 8980',
19813         'STATE 2 e 8160 8982',
19814         'STATE 4 f 8160 8983',
19815         'STATE 3 r 8160 8275',
19816         'STATE 1 h 8152 8984',
19817         'STATE 4 b 8986 8985',
19818         'STATE 4 z 8100 8987',
19819         'STATE 6 s 8566 8988',
19820         'STATE 2 # 8152 8096',
19821         'STATE 4 p 8160 8989',
19822         'STATE 6 n 8152 8160',
19823         'STATE 6 r 8991 8990',
19824         'STATE 3 b 8275 8992',
19825         'STATE 6 n 8094 8275',
19826         'STATE 3 r 8272 8278',
19827         'STATE 2 e 8272 8993',
19828         'STATE 1 t 8275 8994',
19829         'STATE 5 s 8096 8995',
19830         'STATE 1 a 8996 8096',
19831         'STATE 5 l 8081 8997',
19832         'STATE 3 l 8275 8998',
19833         'STATE 6 r 8275 8081',
19834         'STATE 2 o 8096 8999',
19835         'STATE 3 l 8096 8275',
19836         'STATE 5 s 9001 9000',
19837         'STATE 1 r 9003 9002',
19838         'STATE 3 s 8160 9004',
19839         'STATE 5 y 8275 9005',
19840         'STATE 6 n 9007 9006',
19841         'STATE 2 # 9009 9008',
19842         'STATE 6 c 8152 9010',
19843         'STATE 6 s 8275 9011',
19844         'STATE 6 i 8295 9012',
19845         'STATE 5 v 8160 9013',
19846         'STATE 1 u 8160 9014',
19847         'STATE 5 j 8152 9015',
19848         'STATE 6 r 8152 8644',
19849         'STATE 5 s 8160 9016',
19850         'STATE 2 e 9018 9017',
19851         'STATE 3 r 9019 8160',
19852         'STATE 1 m 8160 9020',
19853         'STATE 5 p 8075 9021',
19854         'STATE 2 n 8081 9022',
19855         'STATE 6 h 8075 8081',
19856         'STATE 6 c 8100 9023',
19857         'STATE 2 a 8100 9024',
19858         'STATE 3 c 9025 8100',
19859         'STATE 3 m 8100 8075',
19860         'STATE 5 i 8075 8100',
19861         'STATE 5 g 8100 9026',
19862         'STATE 5 t 9028 9027',
19863         'STATE 5 o 8275 9029',
19864         'STATE 2 s 9031 9030',
19865         'STATE 4 t 8275 9032',
19866         'STATE 6 r 8094 9033',
19867         'STATE 3 n 9035 9034',
19868         'STATE 2 p 8152 9036',
19869         'STATE 5 s 9038 9037',
19870         'STATE 6 r 8152 9039',
19871         'STATE 6 e 8152 9040',
19872         'STATE 6 # 8275 9041',
19873         'STATE 2 e 8152 9042',
19874         'STATE 1 o 8275 9043',
19875         'STATE 3 r 8275 9044',
19876         'STATE 4 v 9046 9045',
19877         'STATE 4 h 8295 9047',
19878         'STATE 6 n 9049 9048',
19879         'STATE 2 p 8152 8075',
19880         'STATE 2 e 9051 9050',
19881         'STATE 2 n 9052 8275',
19882         'STATE 4 x 9054 9053',
19883         'STATE 2 t 8295 9055',
19884         'STATE 2 i 8295 9056',
19885         'STATE 2 t 8096 9057',
19886         'STATE 6 # 8275 9058',
19887         'STATE 2 t 8147 9059',
19888         'STATE 4 f 9061 9060',
19889         'STATE 5 s 9063 9062',
19890         'STATE 3 j 8152 9064',
19891         'STATE 3 m 8275 9065',
19892         'STATE 4 t 8275 9066',
19893         'STATE 3 l 8094 9067',
19894         'STATE 3 w 9069 9068',
19895         'STATE 3 p 8152 8275',
19896         'STATE 6 c 9071 9070',
19897         'STATE 3 m 8096 8275',
19898         'STATE 3 m 8160 9072',
19899         'STATE 3 t 9074 9073',
19900         'STATE 6 i 8152 8275',
19901         'STATE 6 o 8160 9075',
19902         'STATE 3 c 9077 9076',
19903         'STATE 6 l 8275 8096',
19904         'STATE 4 h 8152 9078',
19905         'STATE 4 v 8094 8096',
19906         'STATE 4 v 8160 8275',
19907         'STATE 3 r 8096 9079',
19908         'STATE 6 u 8160 9080',
19909         'STATE 3 m 9082 9081',
19910         'STATE 4 s 8152 9083',
19911         'STATE 2 n 8152 9084',
19912         'STATE 2 a 8160 9085',
19913         'STATE 3 t 8160 9086',
19914         'STATE 6 y 8275 9087',
19915         'STATE 2 # 8275 8096',
19916         'STATE 4 t 8275 9088',
19917         'STATE 3 r 9090 9089',
19918         'STATE 3 r 8152 8275',
19919         'STATE 6 n 8275 9091',
19920         'STATE 2 n 8094 9092',
19921         'STATE 3 l 8094 9093',
19922         'STATE 2 a 8272 9094',
19923         'STATE 2 n 9096 9095',
19924         'STATE 2 a 8096 8081',
19925         'STATE 5 e 8096 9097',
19926         'STATE 2 g 8275 9098',
19927         'STATE 3 r 8275 9099',
19928         'STATE 3 s 8096 9100',
19929         'STATE 3 m 9102 9101',
19930         'STATE 6 # 9104 9103',
19931         'STATE 6 o 8160 8152',
19932         'STATE 2 e 8295 8152',
19933         'STATE 2 i 8096 9105',
19934         'STATE 5 a 9107 9106',
19935         'STATE 6 t 8160 9108',
19936         'STATE 3 s 8160 9109',
19937         'STATE 6 o 8295 9110',
19938         'STATE 3 h 8152 9111',
19939         'STATE 6 g 8152 9112',
19940         'STATE 6 l 8152 9113',
19941         'STATE 5 p 9115 9114',
19942         'STATE 6 c 8152 9116',
19943         'STATE 2 s 8160 8152',
19944         'STATE 5 l 8152 9117',
19945         'STATE 5 n 8160 8152',
19946         'STATE 2 u 9119 9118',
19947         'STATE 1 r 8295 9120',
19948         'STATE 1 e 8295 9056',
19949         'STATE 1 r 8152 9121',
19950         'STATE 6 # 8075 9122',
19951         'STATE 3 m 8081 9123',
19952         'STATE 6 i 8100 9124',
19953         'STATE 2 c 8075 9125',
19954         'STATE 2 c 8100 9126',
19955         'STATE 5 s 8100 9127',
19956         'STATE 4 m 9129 9128',
19957         'STATE 1 0 9131 9130',
19958         'STATE 5 i 8275 9132',
19959         'STATE 5 k 8152 9133',
19960         'STATE 5 i 8275 9134',
19961         'STATE 4 p 9136 9135',
19962         'STATE 6 # 9138 9137',
19963         'STATE 3 r 8160 9139',
19964         'STATE 6 # 8096 8160',
19965         'STATE 3 e 9141 9140',
19966         'STATE 1 # 9143 9142',
19967         'STATE 2 c 8100 9144',
19968         'STATE 5 h 8152 9145',
19969         'STATE 1 # 8100 8275',
19970         'STATE 6 a 8275 9146',
19971         'STATE 2 m 8152 8160',
19972         'STATE 5 s 8096 9147',
19973         'STATE 3 l 8275 9148',
19974         'STATE 6 u 8160 9149',
19975         'STATE 6 l 8071 8096',
19976         'STATE 4 c 8096 9150',
19977         'STATE 2 t 8152 9151',
19978         'STATE 3 i 8096 8275',
19979         'STATE 2 h 8096 9152',
19980         'STATE 4 c 8275 8152',
19981         'STATE 1 e 8275 8096',
19982         'STATE 4 h 8096 9153',
19983         'STATE 3 b 8152 8295',
19984         'STATE 1 e 8295 9154',
19985         'STATE 1 a 8160 8295',
19986         'STATE 2 m 8275 8096',
19987         'STATE 2 e 8096 9155',
19988         'STATE 3 r 8147 9156',
19989         'STATE 4 j 8272 9157',
19990         'STATE 3 s 8100 9158',
19991         'STATE 3 k 9160 9159',
19992         'STATE 3 p 9162 9161',
19993         'STATE 5 n 9163 8275',
19994         'STATE 3 l 8275 9164',
19995         'STATE 6 c 9166 9165',
19996         'STATE 6 n 8096 9167',
19997         'STATE 5 u 9169 9168',
19998         'STATE 5 f 8120 8275',
19999         'STATE 6 t 9171 9170',
20000         'STATE 3 s 8160 8152',
20001         'STATE 3 k 8160 9172',
20002         'STATE 6 s 8275 8152',
20003         'STATE 6 e 8152 8275',
20004         'STATE 6 u 8160 8152',
20005         'STATE 3 h 8275 9173',
20006         'STATE 6 b 8096 8275',
20007         'STATE 6 r 8152 9174',
20008         'STATE 3 k 8096 9175',
20009         'STATE 6 l 8160 8152',
20010         'STATE 4 g 8160 9176',
20011         'STATE 4 d 8152 9177',
20012         'STATE 6 c 9179 9178',
20013         'STATE 4 g 8100 9180',
20014         'STATE 1 # 9182 9181',
20015         'STATE 1 # 8096 9183',
20016         'STATE 6 t 9185 9184',
20017         'STATE 4 p 8275 9186',
20018         'STATE 2 # 9187 8152',
20019         'STATE 6 n 8275 8152',
20020         'STATE 6 s 8275 9188',
20021         'STATE 1 # 8094 8275',
20022         'STATE 6 r 8094 9189',
20023         'STATE 3 l 8272 8278',
20024         'STATE 6 a 8081 9190',
20025         'STATE 6 r 8096 8275',
20026         'STATE 5 a 9191 8096',
20027         'STATE 2 c 8275 8081',
20028         'STATE 3 b 9193 9192',
20029         'STATE 2 u 8096 9194',
20030         'STATE 5 y 8160 9195',
20031         'STATE 5 y 9196 8160',
20032         'STATE 3 m 8160 8152',
20033         'STATE 3 r 8160 9197',
20034         'STATE 1 a 9198 8160',
20035         'STATE 2 b 8152 9199',
20036         'STATE 3 r 8275 8152',
20037         'STATE 2 a 8160 9200',
20038         'STATE 1 # 8275 9201',
20039         'STATE 5 o 8096 8152',
20040         'STATE 5 n 9203 9202',
20041         'STATE 6 # 8275 9187',
20042         'STATE 6 t 9204 8152',
20043         'STATE 5 s 9206 9205',
20044         'STATE 6 r 8152 8295',
20045         'STATE 5 d 9075 9207',
20046         'STATE 6 c 8152 9208',
20047         'STATE 3 c 9210 9209',
20048         'STATE 3 l 8160 8295',
20049         'STATE 3 l 8160 9211',
20050         'STATE 3 g 8160 9212',
20051         'STATE 3 l 8075 9213',
20052         'STATE 2 o 8081 9214',
20053         'STATE 3 e 8075 9215',
20054         'STATE 1 m 8075 9216',
20055         'STATE 1 r 8100 8147',
20056         'STATE 5 k 8100 9217',
20057         'STATE 4 x 8152 9218',
20058         'STATE 3 c 9220 9219',
20059         'STATE 6 e 9222 9221',
20060         'STATE 4 b 8160 9223',
20061         'STATE 5 y 9225 9224',
20062         'STATE 5 p 8152 9226',
20063         'STATE 5 h 9227 8152',
20064         'STATE 6 # 8275 9228',
20065         'STATE 6 l 8096 9229',
20066         'STATE 5 v 8152 9230',
20067         'STATE 3 a 8081 9231',
20068         'STATE 1 a 8275 9232',
20069         'STATE 2 a 8152 9233',
20070         'STATE 2 h 8160 9234',
20071         'STATE 6 # 9236 9235',
20072         'STATE 2 f 8100 9237',
20073         'STATE 2 g 9239 9238',
20074         'STATE 5 c 9240 8152',
20075         'STATE 1 m 8096 9241',
20076         'STATE 3 r 8096 9242',
20077         'STATE 2 s 8275 8096',
20078         'STATE 6 l 9244 9243',
20079         'STATE 4 k 8096 9245',
20080         'STATE 6 b 8152 9246',
20081         'STATE 2 s 8096 9247',
20082         'STATE 4 z 8096 9248',
20083         'STATE 1 t 8152 9249',
20084         'STATE 5 t 8275 9250',
20085         'STATE 3 n 8147 9251',
20086         'STATE 5 u 9253 9252',
20087         'STATE 5 f 9255 9254',
20088         'STATE 3 y 8275 9256',
20089         'STATE 6 i 8152 9257',
20090         'STATE 6 a 9259 9258',
20091         'STATE 6 e 8160 8152',
20092         'STATE 6 e 8275 9260',
20093         'STATE 6 m 8275 9261',
20094         'STATE 3 l 8160 9262',
20095         'STATE 3 m 8096 8152',
20096         'STATE 6 c 8152 8275',
20097         'STATE 5 v 8152 9263',
20098         'STATE 6 n 8152 9264',
20099         'STATE 3 p 8096 9265',
20100         'STATE 3 p 8160 9266',
20101         'STATE 6 g 8152 9090',
20102         'STATE 6 c 8152 9267',
20103         'STATE 6 n 8152 8275',
20104         'STATE 3 d 8096 8275',
20105         'STATE 3 r 9269 9268',
20106         'STATE 6 n 8152 8096',
20107         'STATE 6 l 8160 9270',
20108         'STATE 2 b 8096 8160',
20109         'STATE 3 c 8160 9271',
20110         'STATE 3 s 8160 8275',
20111         'STATE 4 l 8275 9272',
20112         'STATE 2 e 8160 9273',
20113         'STATE 4 t 9275 9274',
20114         'STATE 4 l 8096 8160',
20115         'STATE 2 # 9276 8152',
20116         'STATE 3 b 8152 8275',
20117         'STATE 2 e 8094 9277',
20118         'STATE 3 d 8094 8275',
20119         'STATE 2 f 8081 9278',
20120         'STATE 6 n 8081 8096',
20121         'STATE 3 s 8275 9279',
20122         'STATE 6 r 8081 9280',
20123         'STATE 2 r 8096 9281',
20124         'STATE 6 # 9283 9282',
20125         'STATE 2 i 8275 8160',
20126         'STATE 3 m 8160 9284',
20127         'STATE 3 r 8096 8160',
20128         'STATE 2 s 8152 9285',
20129         'STATE 2 e 8160 9286',
20130         'STATE 3 t 8275 8160',
20131         'STATE 5 k 9227 9287',
20132         'STATE 3 t 8094 8152',
20133         'STATE 3 d 8096 8152',
20134         'STATE 6 e 8295 8152',
20135         'STATE 6 t 8295 8152',
20136         'STATE 1 # 8152 9288',
20137         'STATE 6 r 9290 9289',
20138         'STATE 2 l 8160 9291',
20139         'STATE 2 i 8152 8160',
20140         'STATE 3 d 8160 9292',
20141         'STATE 3 l 8152 8160',
20142         'STATE 6 l 8075 9293',
20143         'STATE 3 b 8081 9294',
20144         'STATE 5 y 9296 9295',
20145         'STATE 2 r 8100 9297',
20146         'STATE 5 l 8100 9298',
20147         'STATE 2 p 9300 9299',
20148         'STATE 5 o 8160 9301',
20149         'STATE 2 c 9303 9302',
20150         'STATE 4 c 8152 9304',
20151         'STATE 1 a 8160 9305',
20152         'STATE 4 t 8152 9306',
20153         'STATE 4 c 9308 9307',
20154         'STATE 3 b 8152 9309',
20155         'STATE 3 e 9311 9310',
20156         'STATE 3 m 8094 8152',
20157         'STATE 3 h 8275 9312',
20158         'STATE 2 p 8160 8152',
20159         'STATE 6 t 9314 9313',
20160         'STATE 5 s 8160 9315',
20161         'STATE 2 m 8275 9316',
20162         'STATE 3 m 8152 9317',
20163         'STATE 1 i 8160 8152',
20164         'STATE 2 g 8152 9318',
20165         'STATE 5 h 9320 9319',
20166         'STATE 2 p 9322 9321',
20167         'STATE 1 # 9324 9323',
20168         'STATE 3 l 8100 8275',
20169         'STATE 6 i 8152 8100',
20170         'STATE 3 p 8275 9325',
20171         'STATE 1 i 8275 8096',
20172         'STATE 6 s 9327 9326',
20173         'STATE 4 s 8275 9328',
20174         'STATE 4 s 8096 9329',
20175         'STATE 3 n 8152 9330',
20176         'STATE 1 0 8096 9331',
20177         'STATE 4 g 9333 9332',
20178         'STATE 3 n 8147 9334',
20179         'STATE 5 # 8275 9335',
20180         'STATE 2 a 8100 9336',
20181         'STATE 5 h 9338 9337',
20182         'STATE 6 l 8152 9339',
20183         'STATE 3 h 8152 9340',
20184         'STATE 6 # 8100 9341',
20185         'STATE 3 p 9343 9342',
20186         'STATE 6 a 8275 9344',
20187         'STATE 3 f 8152 9345',
20188         'STATE 3 c 8152 8160',
20189         'STATE 6 # 8152 8275',
20190         'STATE 3 n 9347 9346',
20191         'STATE 6 # 8275 9348',
20192         'STATE 5 c 9350 9349',
20193         'STATE 6 m 8152 8160',
20194         'STATE 6 d 8152 9351',
20195         'STATE 3 s 8152 8096',
20196         'STATE 6 s 9353 9352',
20197         'STATE 6 c 8096 9354',
20198         'STATE 2 p 8160 9355',
20199         'STATE 3 i 8293 9356',
20200         'STATE 4 p 9358 9357',
20201         'STATE 3 l 8275 9359',
20202         'STATE 3 n 8160 9360',
20203         'STATE 4 h 8096 9361',
20204         'STATE 6 l 8096 8275',
20205         'STATE 3 c 8275 9362',
20206         'STATE 3 h 8094 9363',
20207         'STATE 6 n 9365 9364',
20208         'STATE 3 t 8720 9366',
20209         'STATE 5 s 8081 8275',
20210         'STATE 2 s 8906 8096',
20211         'STATE 2 c 8152 9367',
20212         'STATE 5 o 8275 8152',
20213         'STATE 2 r 8160 9368',
20214         'STATE 3 r 8152 9369',
20215         'STATE 6 e 8160 9370',
20216         'STATE 5 d 9372 9371',
20217         'STATE 5 s 9373 8160',
20218         'STATE 6 p 8160 9374',
20219         'STATE 5 t 8152 8160',
20220         'STATE 2 d 8160 9375',
20221         'STATE 3 r 8160 9376',
20222         'STATE 5 v 8075 8578',
20223         'STATE 2 m 8081 9377',
20224         'STATE 6 h 8075 9378',
20225         'STATE 1 c 8100 8075',
20226         'STATE 1 a 8147 9379',
20227         'STATE 5 n 8100 9380',
20228         'STATE 6 c 9382 9381',
20229         'STATE 3 e 8075 9383',
20230         'STATE 5 b 9385 9384',
20231         'STATE 6 n 8094 9386',
20232         'STATE 6 a 8094 8152',
20233         'STATE 2 h 8152 9387',
20234         'STATE 4 t 9388 8152',
20235         'STATE 6 e 8152 9389',
20236         'STATE 3 r 9391 9390',
20237         'STATE 3 d 8160 9392',
20238         'STATE 3 l 8160 9393',
20239         'STATE 5 i 9395 9394',
20240         'STATE 5 l 8096 8160',
20241         'STATE 6 t 8160 9396',
20242         'STATE 5 t 8275 9397',
20243         'STATE 5 s 8275 9398',
20244         'STATE 3 h 9400 9399',
20245         'STATE 3 p 8096 9401',
20246         'STATE 2 i 8152 9402',
20247         'STATE 6 o 9404 9403',
20248         'STATE 5 o 8275 9405',
20249         'STATE 2 n 8152 8094',
20250         'STATE 3 r 8152 9406',
20251         'STATE 5 c 8096 8152',
20252         'STATE 6 e 8160 9407',
20253         'STATE 6 # 8100 9408',
20254         'STATE 6 o 8275 9409',
20255         'STATE 1 m 9411 9410',
20256         'STATE 4 l 8160 9412',
20257         'STATE 2 i 8160 9413',
20258         'STATE 4 p 8096 9414',
20259         'STATE 3 t 8275 9415',
20260         'STATE 4 b 8096 9416',
20261         'STATE 4 f 9418 9417',
20262         'STATE 3 d 8100 9419',
20263         'STATE 1 r 8147 9420',
20264         'STATE 3 c 8275 8096',
20265         'STATE 2 i 8100 9421',
20266         'STATE 5 r 9423 9422',
20267         'STATE 4 t 9425 9424',
20268         'STATE 3 d 8152 9426',
20269         'STATE 3 l 8152 8275',
20270         'STATE 3 h 8100 9427',
20271         'STATE 6 h 8100 9428',
20272         'STATE 6 u 8152 9429',
20273         'STATE 5 t 8152 9002',
20274         'STATE 6 e 8152 9430',
20275         'STATE 6 n 8275 9431',
20276         'STATE 4 v 8152 8275',
20277         'STATE 6 e 9433 9432',
20278         'STATE 5 f 9434 8275',
20279         'STATE 6 a 8295 8275',
20280         'STATE 6 a 8275 9435',
20281         'STATE 6 l 9437 9436',
20282         'STATE 3 p 8160 8275',
20283         'STATE 4 s 8160 9438',
20284         'STATE 2 t 8275 9439',
20285         'STATE 4 g 8160 9440',
20286         'STATE 3 h 9442 9441',
20287         'STATE 2 p 8152 8275',
20288         'STATE 4 d 8096 8275',
20289         'STATE 6 d 8160 8096',
20290         'STATE 6 e 8152 9443',
20291         'STATE 4 g 8152 9444',
20292         'STATE 3 l 8094 8275',
20293         'STATE 5 l 8081 9445',
20294         'STATE 2 c 8081 8275',
20295         'STATE 3 m 8275 8081',
20296         'STATE 6 s 8275 9446',
20297         'STATE 2 l 8160 9447',
20298         'STATE 3 l 8152 9448',
20299         'STATE 6 s 9449 8152',
20300         'STATE 3 s 8100 8152',
20301         'STATE 6 l 8152 9450',
20302         'STATE 1 i 8152 8160',
20303         'STATE 6 t 8152 9451',
20304         'STATE 2 h 8160 9452',
20305         'STATE 3 n 8152 8295',
20306         'STATE 1 r 8081 9453',
20307         'STATE 1 e 9455 9454',
20308         'STATE 1 h 8075 9456',
20309         'STATE 3 s 8100 9457',
20310         'STATE 5 i 9459 9458',
20311         'STATE 4 g 8152 9460',
20312         'STATE 5 r 9462 9461',
20313         'STATE 1 0 9464 9463',
20314         'STATE 1 c 8094 9465',
20315         'STATE 1 e 9467 9466',
20316         'STATE 6 o 8152 9468',
20317         'STATE 3 l 8152 8100',
20318         'STATE 6 o 8295 8152',
20319         'STATE 4 t 9470 9469',
20320         'STATE 5 h 8147 9471',
20321         'STATE 2 l 9259 9472',
20322         'STATE 4 m 8160 9473',
20323         'STATE 5 u 9475 9474',
20324         'STATE 6 s 9477 9476',
20325         'STATE 3 r 9479 9478',
20326         'STATE 6 a 9481 9480',
20327         'STATE 3 p 9482 8160',
20328         'STATE 5 l 8816 9483',
20329         'STATE 2 c 8152 9484',
20330         'STATE 6 t 8096 9485',
20331         'STATE 3 t 8152 9486',
20332         'STATE 5 o 9212 9487',
20333         'STATE 5 c 8160 9488',
20334         'STATE 5 t 9490 9489',
20335         'STATE 5 t 8603 9491',
20336         'STATE 2 o 8152 9492',
20337         'STATE 2 b 8152 8100',
20338         'STATE 1 # 8275 9493',
20339         'STATE 1 s 9495 9494',
20340         'STATE 2 o 8160 8152',
20341         'STATE 3 t 8096 8275',
20342         'STATE 1 i 8160 8275',
20343         'STATE 6 l 8152 9496',
20344         'STATE 3 l 8275 9497',
20345         'STATE 4 p 9499 9498',
20346         'STATE 3 t 8152 9500',
20347         'STATE 3 h 8160 8147',
20348         'STATE 2 a 8147 9501',
20349         'STATE 3 h 8147 9259',
20350         'STATE 1 a 8100 8147',
20351         'STATE 4 g 9503 9502',
20352         'STATE 3 r 8295 9504',
20353         'STATE 6 i 9506 9505',
20354         'STATE 3 r 8100 9507',
20355         'STATE 6 n 8096 9508',
20356         'STATE 6 e 8152 9509',
20357         'STATE 3 c 9511 9510',
20358         'STATE 6 i 8100 8275',
20359         'STATE 3 r 9513 9512',
20360         'STATE 6 t 8816 9514',
20361         'STATE 3 r 9516 9515',
20362         'STATE 4 c 8275 9517',
20363         'STATE 3 g 8152 8275',
20364         'STATE 6 v 8152 9518',
20365         'STATE 3 r 9520 9519',
20366         'STATE 4 t 8275 9521',
20367         'STATE 2 c 8275 9522',
20368         'STATE 6 n 8160 8096',
20369         'STATE 6 e 8096 9523',
20370         'STATE 4 d 8152 9524',
20371         'STATE 4 b 8275 8152',
20372         'STATE 4 c 9526 9525',
20373         'STATE 3 h 8152 8275',
20374         'STATE 1 r 8081 9527',
20375         'STATE 2 e 8152 9528',
20376         'STATE 3 h 8152 9212',
20377         'STATE 5 d 8160 8152',
20378         'STATE 1 a 8152 8774',
20379         'STATE 6 r 8152 9529',
20380         'STATE 6 h 8152 9530',
20381         'STATE 1 e 9531 8160',
20382         'STATE 1 i 8081 8200',
20383         'STATE 6 o 8100 9532',
20384         'STATE 5 i 9534 9533',
20385         'STATE 1 n 8075 8100',
20386         'STATE 5 i 8100 9535',
20387         'STATE 5 h 9537 9536',
20388         'STATE 4 g 9539 9538',
20389         'STATE 4 t 8152 9540',
20390         'STATE 4 v 8295 9541',
20391         'STATE 1 p 8275 9542',
20392         'STATE 6 c 8152 9543',
20393         'STATE 5 i 8096 8152',
20394         'STATE 2 a 8100 8152',
20395         'STATE 5 b 8160 9544',
20396         'STATE 6 u 8160 8094',
20397         'STATE 2 a 8152 8275',
20398         'STATE 4 m 9546 9545',
20399         'STATE 2 c 8100 9547',
20400         'STATE 4 f 8100 9548',
20401         'STATE 3 n 8160 9549',
20402         'STATE 4 d 8160 9550',
20403         'STATE 5 h 9552 9551',
20404         'STATE 6 l 8152 9553',
20405         'STATE 4 h 8096 9554',
20406         'STATE 4 m 8152 8160',
20407         'STATE 3 l 8160 9555',
20408         'STATE 2 p 9556 8275',
20409         'STATE 6 c 9558 9557',
20410         'STATE 5 l 9107 8275',
20411         'STATE 2 o 8152 9559',
20412         'STATE 5 t 8275 9560',
20413         'STATE 5 m 8275 9561',
20414         'STATE 6 # 9562 8275',
20415         'STATE 1 o 8152 9563',
20416         'STATE 6 h 8160 9564',
20417         'STATE 2 c 8160 9565',
20418         'PHONE ih',
20419         'STATE 2 n 8275 9566',
20420         'STATE 5 o 8096 9567',
20421         'STATE 3 l 8100 9568',
20422         'STATE 3 l 8275 9569',
20423         'STATE 4 t 9571 9570',
20424         'STATE 4 t 8160 8152',
20425         'STATE 6 h 8152 9572',
20426         'STATE 4 c 8152 9573',
20427         'STATE 1 # 9574 8160',
20428         'STATE 1 y 8160 8096',
20429         'STATE 2 s 9576 9575',
20430         'STATE 3 r 8160 9577',
20431         'STATE 5 y 9579 9578',
20432         'STATE 3 d 9581 9580',
20433         'STATE 3 c 8275 9582',
20434         'STATE 3 k 8152 9583',
20435         'STATE 4 p 8160 8152',
20436         'STATE 3 m 9585 9584',
20437         'STATE 4 b 9587 9586',
20438         'STATE 3 g 8152 9588',
20439         'STATE 5 q 8152 9589',
20440         'STATE 6 a 8100 9590',
20441         'STATE 6 # 8100 9591',
20442         'STATE 6 i 8100 8152',
20443         'STATE 3 p 9593 9592',
20444         'STATE 6 f 9595 9594',
20445         'STATE 4 b 8152 9596',
20446         'STATE 3 r 8275 9187',
20447         'STATE 3 s 8275 9597',
20448         'STATE 6 t 8096 9598',
20449         'STATE 4 b 8152 8275',
20450         'STATE 4 c 8275 8160',
20451         'STATE 4 b 8096 9599',
20452         'STATE 6 n 9601 9600',
20453         'STATE 1 # 9602 8275',
20454         'STATE 6 m 9604 9603',
20455         'STATE 6 a 8275 8100',
20456         'STATE 6 r 8632 9605',
20457         'STATE 5 o 9607 9606',
20458         'STATE 3 r 8295 8152',
20459         'STATE 6 a 9609 9608',
20460         'STATE 3 n 8152 8160',
20461         'STATE 1 h 8075 9610',
20462         'STATE 6 # 8075 8100',
20463         'STATE 3 r 8075 8100',
20464         'STATE 5 m 8100 8317',
20465         'STATE 5 r 9612 9611',
20466         'STATE 4 t 9614 9613',
20467         'STATE 6 a 8275 9615',
20468         'STATE 3 l 8160 8275',
20469         'STATE 4 p 8152 9616',
20470         'STATE 4 d 8160 9617',
20471         'STATE 1 e 8275 8160',
20472         'STATE 2 e 8152 9618',
20473         'STATE 2 n 9620 9619',
20474         'STATE 4 k 8275 9621',
20475         'STATE 5 s 8160 9622',
20476         'STATE 3 c 9624 9623',
20477         'STATE 4 p 8152 9625',
20478         'STATE 2 r 8160 9626',
20479         'STATE 4 p 8160 8275',
20480         'STATE 5 r 9628 9627',
20481         'STATE 4 t 9630 9629',
20482         'STATE 6 c 8160 9631',
20483         'STATE 4 x 8152 9632',
20484         'STATE 2 s 8096 9633',
20485         'STATE 4 v 8160 8096',
20486         'STATE 1 0 9635 9634',
20487         'STATE 3 t 8275 8152',
20488         'STATE 2 a 8096 8160',
20489         'STATE 3 p 9636 8275',
20490         'STATE 1 e 8096 9637',
20491         'STATE 3 f 8275 9638',
20492         'STATE 2 b 8160 9639',
20493         'STATE 3 r 9641 9640',
20494         'STATE 5 t 8100 8152',
20495         'STATE 3 m 8275 9642',
20496         'STATE 5 y 8096 8100',
20497         'STATE 6 # 9643 8971',
20498         'STATE 6 n 8160 8816',
20499         'STATE 6 b 8160 9644',
20500         'STATE 1 i 8096 8152',
20501         'STATE 4 l 8152 8096',
20502         'STATE 6 s 8275 9645',
20503         'STATE 4 l 8160 8096',
20504         'STATE 3 p 8152 9646',
20505         'STATE 3 h 8152 9647',
20506         'STATE 2 r 8295 8152',
20507         'STATE 5 l 9649 9648',
20508         'STATE 4 p 8152 9650',
20509         'STATE 5 l 9651 8152',
20510         'STATE 6 i 8100 9652',
20511         'STATE 6 e 8152 9653',
20512         'STATE 4 c 9655 9654',
20513         'STATE 3 n 8094 9656',
20514         'STATE 6 e 8094 8100',
20515         'STATE 6 s 8275 9657',
20516         'STATE 3 r 8152 8096',
20517         'STATE 3 m 8152 8100',
20518         'STATE 6 o 9659 9658',
20519         'STATE 5 t 9661 9660',
20520         'STATE 3 b 8100 9662',
20521         'STATE 3 k 8160 9663',
20522         'STATE 4 p 8152 8160',
20523         'STATE 6 l 9665 9664',
20524         'STATE 3 c 8275 8152',
20525         'STATE 4 s 8152 8096',
20526         'STATE 6 e 8275 9444',
20527         'STATE 4 d 9667 9666',
20528         'STATE 2 r 8096 9668',
20529         'STATE 3 l 8275 9669',
20530         'STATE 2 r 8275 9107',
20531         'STATE 3 r 8275 9670',
20532         'STATE 3 m 8160 9671',
20533         'STATE 4 l 8160 8275',
20534         'STATE 3 r 8081 9672',
20535         'STATE 6 a 9674 9673',
20536         'STATE 6 m 8152 8346',
20537         'STATE 6 o 9676 9675',
20538         'STATE 5 t 8160 8295',
20539         'STATE 2 a 8075 9677',
20540         'STATE 4 h 9679 9678',
20541         'STATE 6 a 9681 9680',
20542         'STATE 1 0 8152 9682',
20543         'STATE 6 e 9684 9683',
20544         'STATE 4 t 9686 9685',
20545         'STATE 1 e 8152 9687',
20546         'STATE 5 o 8160 9688',
20547         'STATE 5 i 9690 9689',
20548         'STATE 6 a 8152 8160',
20549         'STATE 1 o 8160 9691',
20550         'STATE 4 h 9693 9692',
20551         'STATE 5 b 8160 8152',
20552         'STATE 5 s 9694 8160',
20553         'STATE 1 a 8152 9695',
20554         'STATE 5 s 8160 8152',
20555         'STATE 2 b 8160 9696',
20556         'STATE 4 h 8275 9697',
20557         'STATE 4 t 8096 9698',
20558         'STATE 3 i 8096 9699',
20559         'STATE 3 r 9585 9700',
20560         'STATE 6 s 8275 9701',
20561         'STATE 3 i 8160 9702',
20562         'STATE 4 d 8275 8160',
20563         'STATE 6 d 8152 9703',
20564         'STATE 5 l 8152 9704',
20565         'STATE 5 i 8160 8275',
20566         'STATE 1 c 8096 8275',
20567         'STATE 3 h 8275 9705',
20568         'STATE 1 e 8152 9706',
20569         'STATE 3 g 8096 9707',
20570         'STATE 2 e 8096 9708',
20571         'STATE 3 p 8275 8100',
20572         'STATE 3 r 8160 8152',
20573         'STATE 4 s 8160 9709',
20574         'STATE 6 r 8096 9710',
20575         'STATE 2 a 8160 9711',
20576         'STATE 4 t 8152 8160',
20577         'STATE 5 c 9713 9712',
20578         'STATE 4 b 9651 8152',
20579         'STATE 4 b 9714 8275',
20580         'STATE 6 e 8275 8152',
20581         'STATE 5 g 8100 8152',
20582         'STATE 6 i 8152 9715',
20583         'STATE 3 s 8152 9716',
20584         'STATE 6 e 8152 9717',
20585         'STATE 6 e 9718 8152',
20586         'STATE 4 g 8275 9719',
20587         'STATE 5 u 8275 9720',
20588         'STATE 3 r 8152 9721',
20589         'STATE 5 m 9722 8152',
20590         'STATE 6 u 8295 9723',
20591         'STATE 3 g 8152 9724',
20592         'STATE 6 o 8160 9725',
20593         'STATE 3 k 9727 9726',
20594         'STATE 3 m 8275 8152',
20595         'STATE 4 k 8160 9728',
20596         'STATE 6 r 8096 8160',
20597         'STATE 2 e 8160 9729',
20598         'STATE 3 r 8275 8771',
20599         'STATE 2 s 8275 8160',
20600         'STATE 2 # 9731 9730',
20601         'STATE 6 # 8275 9732',
20602         'STATE 5 m 8160 9733',
20603         'STATE 3 d 8152 8160',
20604         'STATE 5 f 8160 9734',
20605         'STATE 5 f 8160 9735',
20606         'STATE 6 s 8931 9736',
20607         'STATE 5 o 9738 9737',
20608         'STATE 5 o 8160 8275',
20609         'STATE 1 h 9489 9739',
20610         'STATE 2 c 8096 9740',
20611         'STATE 4 c 9742 9741',
20612         'STATE 6 a 8160 8152',
20613         'STATE 2 y 8152 9743',
20614         'STATE 6 t 9745 9744',
20615         'STATE 3 m 8275 9746',
20616         'STATE 4 b 9747 8160',
20617         'STATE 4 t 8152 9748',
20618         'STATE 3 r 8152 9162',
20619         'STATE 3 t 8160 9749',
20620         'STATE 6 e 8152 9234',
20621         'STATE 2 a 8295 9750',
20622         'STATE 3 s 8160 8096',
20623         'STATE 3 i 8160 9751',
20624         'STATE 2 s 8160 9752',
20625         'STATE 2 s 8152 9753',
20626         'STATE 2 p 9755 9754',
20627         'STATE 2 b 8152 9756',
20628         'STATE 2 e 8160 9757',
20629         'STATE 2 c 8275 8152',
20630         'STATE 4 q 8160 8096',
20631         'STATE 3 r 9759 9758',
20632         'STATE 5 l 9761 9760',
20633         'STATE 5 i 9763 9762',
20634         'STATE 2 e 8275 8415',
20635         'STATE 2 u 8152 9764',
20636         'STATE 6 r 8275 9765',
20637         'STATE 2 u 8096 9766',
20638         'STATE 1 l 8275 9767',
20639         'STATE 3 r 8275 8096',
20640         'STATE 1 b 8295 9768',
20641         'STATE 4 z 8152 9769',
20642         'STATE 4 c 9770 8152',
20643         'STATE 6 # 8275 8160',
20644         'STATE 6 a 9071 8160',
20645         'STATE 4 p 8275 8152',
20646         'STATE 6 a 8275 8152',
20647         'STATE 3 b 8152 8094',
20648         'STATE 4 c 8096 9771',
20649         'STATE 3 t 8096 9772',
20650         'STATE 3 m 8152 8126',
20651         'STATE 6 o 8100 8295',
20652         'STATE 6 e 8100 9773',
20653         'STATE 3 m 8100 9513',
20654         'STATE 3 c 8275 9774',
20655         'STATE 4 d 9776 9775',
20656         'STATE 6 n 8160 8275',
20657         'STATE 6 r 8275 9777',
20658         'STATE 1 o 8160 9778',
20659         'STATE 6 a 8152 9779',
20660         'STATE 3 t 8160 8275',
20661         'STATE 5 e 8275 8096',
20662         'STATE 3 s 8160 9780',
20663         'STATE 6 i 8160 9781',
20664         'STATE 5 s 8160 9782',
20665         'STATE 3 i 8100 9783',
20666         'STATE 5 y 9785 9784',
20667         'STATE 4 p 9787 9786',
20668         'STATE 1 a 8160 9788',
20669         'STATE 2 l 8152 9789',
20670         'STATE 1 p 8096 9790',
20671         'STATE 1 u 8096 9791',
20672         'STATE 2 d 8094 9792',
20673         'STATE 6 e 9794 9793',
20674         'STATE 4 v 8160 9795',
20675         'STATE 3 v 8275 8160',
20676         'STATE 1 0 8160 8275',
20677         'STATE 6 t 8152 8275',
20678         'STATE 2 o 8160 9796',
20679         'STATE 3 l 8160 9797',
20680         'STATE 3 g 8160 8152',
20681         'STATE 2 i 8295 8152',
20682         'STATE 1 s 8152 9798',
20683         'STATE 3 i 8275 9799',
20684         'STATE 5 l 9800 8152',
20685         'STATE 4 p 8160 9801',
20686         'STATE 2 p 8152 9802',
20687         'STATE 2 a 8152 9167',
20688         'STATE 6 c 8152 9803',
20689         'STATE 6 k 8275 9804',
20690         'STATE 3 r 8275 9805',
20691         'STATE 5 y 8096 8275',
20692         'STATE 6 v 8096 8152',
20693         'STATE 1 r 8152 9411',
20694         'STATE 6 s 8275 9806',
20695         'STATE 2 t 8160 8275',
20696         'STATE 4 h 8160 9807',
20697         'STATE 1 c 8152 9808',
20698         'STATE 6 o 8152 9809',
20699         'STATE 6 i 8275 9810',
20700         'STATE 4 q 8096 8275',
20701         'STATE 5 c 8096 9811',
20702         'STATE 6 l 8100 8152',
20703         'STATE 4 b 8275 9812',
20704         'STATE 4 p 8275 9813',
20705         'STATE 6 n 8096 8160',
20706         'STATE 4 l 9815 9814',
20707         'STATE 2 s 8160 9816',
20708         'STATE 6 s 8152 8275',
20709         'STATE 5 h 8160 9817',
20710         'STATE 5 c 8160 9818',
20711         'STATE 5 t 8160 8152',
20712         'STATE 1 d 8100 9819',
20713         'STATE 5 l 9821 9820',
20714         'STATE 4 d 8096 9822',
20715         'STATE 1 0 9824 9823',
20716         'STATE 6 u 8152 9825',
20717         'STATE 6 o 9827 9826',
20718         'STATE 1 o 8152 9828',
20719         'STATE 3 r 8160 9829',
20720         'STATE 3 r 9830 8703',
20721         'STATE 1 0 8094 8160',
20722         'STATE 4 v 8096 9831',
20723         'STATE 1 t 8152 9832',
20724         'STATE 4 c 8152 9833',
20725         'STATE 2 p 8160 9834',
20726         'STATE 1 e 8160 8152',
20727         'STATE 1 n 8152 9835',
20728         'STATE 5 y 8100 9836',
20729         'STATE 4 c 8096 8152',
20730         'STATE 6 e 8160 9837',
20731         'STATE 6 e 8152 9838',
20732         'STATE 2 p 9839 8275',
20733         'STATE 5 p 8275 9840',
20734         'STATE 1 m 8152 9841',
20735         'STATE 1 e 8160 9842',
20736         'STATE 2 s 8160 9843',
20737         'STATE 3 i 8160 9844',
20738         'STATE 5 z 9651 8152',
20739         'STATE 6 a 8152 8275',
20740         'STATE 3 m 9846 9845',
20741         'STATE 4 k 9848 9847',
20742         'STATE 4 c 8275 9849',
20743         'STATE 6 n 8275 9850',
20744         'STATE 6 n 8096 9851',
20745         'STATE 4 t 9439 9852',
20746         'STATE 2 r 8160 9853',
20747         'STATE 6 l 8152 8160',
20748         'STATE 1 o 9855 9854',
20749         'STATE 4 b 9857 9856',
20750         'STATE 3 r 9859 9858',
20751         'STATE 4 t 8160 9860',
20752         'STATE 1 o 8152 9861',
20753         'STATE 4 d 9863 9862',
20754         'STATE 3 n 8152 9864',
20755         'STATE 1 0 8152 9865',
20756         'STATE 1 i 8096 9866',
20757         'STATE 3 n 9868 9867',
20758         'STATE 2 s 8152 8160',
20759         'STATE 6 e 9869 8275',
20760         'STATE 3 m 9871 9870',
20761         'STATE 4 d 8152 9872',
20762         'STATE 4 d 8152 8096',
20763         'STATE 3 d 8160 8096',
20764         'STATE 3 l 8152 9873',
20765         'STATE 4 m 9389 9874',
20766         'STATE 4 g 8275 8160',
20767         'STATE 2 b 8152 9875',
20768         'STATE 4 f 8152 9876',
20769         'STATE 2 o 8160 9877',
20770         'STATE 3 c 8160 9878',
20771         'STATE 2 i 8096 9879',
20772         'STATE 3 c 8160 9880',
20773         'STATE 2 d 8152 9881',
20774         'STATE 6 i 9882 8152',
20775         'STATE 5 t 8152 9651',
20776         'STATE 6 s 8275 9883',
20777         'STATE 3 s 8152 8275',
20778         'STATE 3 s 8096 9884',
20779         'STATE 6 b 8275 9885',
20780         'STATE 6 k 8275 8152',
20781         'STATE 1 i 8160 9886',
20782         'STATE 3 t 8160 8152',
20783         'STATE 5 n 9888 9887',
20784         'STATE 6 # 8100 8075',
20785         'STATE 5 u 9890 9889',
20786         'STATE 6 e 8160 9891',
20787         'STATE 6 e 9893 9892',
20788         'STATE 4 p 8160 8096',
20789         'STATE 4 g 8160 9894',
20790         'STATE 1 r 8160 9895',
20791         'STATE 6 n 8096 8275',
20792         'STATE 6 r 8275 8152',
20793         'STATE 2 h 8160 9896',
20794         'STATE 1 e 8096 8160',
20795         'STATE 1 u 8096 8160',
20796         'STATE 1 a 8152 9897',
20797         'STATE 2 a 8152 8160',
20798         'STATE 1 e 8160 8096',
20799         'STATE 4 k 8275 9898',
20800         'STATE 2 o 8096 8275',
20801         'STATE 1 0 8275 8096',
20802         'STATE 2 y 8152 9899',
20803         'STATE 5 l 9162 8152',
20804         'STATE 4 c 8152 8275',
20805         'STATE 6 n 8152 9900',
20806         'STATE 6 s 9902 9901',
20807         'STATE 1 o 8160 9903',
20808         'STATE 1 i 8096 9904',
20809         'STATE 1 c 9906 9905',
20810         'STATE 3 s 8152 9907',
20811         'STATE 5 h 8275 8152',
20812         'STATE 6 l 8718 9908',
20813         'STATE 3 t 8160 9909',
20814         'STATE 3 m 8096 9910',
20815         'STATE 4 c 8096 9911',
20816         'STATE 6 # 8100 9912',
20817         'STATE 2 t 8075 9913',
20818         'STATE 1 0 9915 9914',
20819         'STATE 4 g 9917 9916',
20820         'STATE 5 s 9918 8152',
20821         'STATE 1 0 8644 9919',
20822         'STATE 4 g 8275 9920',
20823         'STATE 4 c 8160 8096',
20824         'STATE 1 l 8275 9921',
20825         'STATE 6 l 9797 8160',
20826         'STATE 3 l 8160 9922',
20827         'STATE 2 e 8275 9923',
20828         'STATE 1 e 8152 9259',
20829         'STATE 4 v 8160 8152',
20830         'STATE 3 t 8096 9924',
20831         'STATE 2 m 8160 9925',
20832         'STATE 2 s 8152 9444',
20833         'STATE 6 a 8100 9926',
20834         'STATE 6 c 8096 9927',
20835         'STATE 2 t 8096 8275',
20836         'STATE 3 b 8295 9928',
20837         'STATE 6 r 8275 8774',
20838         'STATE 3 j 8096 8275',
20839         'STATE 6 m 8096 8275',
20840         'STATE 2 i 8160 8293',
20841         'STATE 2 r 8075 9929',
20842         'STATE 1 n 8100 9930',
20843         'STATE 2 e 9932 9931',
20844         'STATE 6 r 8160 9933',
20845         'STATE 1 0 8096 9934',
20846         'STATE 3 l 8100 8152',
20847         'STATE 6 t 8160 8152',
20848         'STATE 6 i 8275 8160',
20849         'STATE 3 n 8275 8160',
20850         'STATE 4 c 8096 9935',
20851         'STATE 3 m 9937 9936',
20852         'STATE 1 i 8096 9938',
20853         'STATE 5 o 8160 9939',
20854         'STATE 2 a 9941 9940',
20855         'STATE 2 o 8152 9942',
20856         'STATE 3 r 9943 8096',
20857         'STATE 2 g 8160 9944',
20858         'STATE 2 b 8100 9945',
20859         'STATE 2 n 8100 9946',
20860         'STATE 6 o 9521 9947',
20861         'STATE 1 r 8160 8152',
20862         'STATE 5 c 9683 8152',
20863         'STATE 3 p 8152 9948',
20864         'STATE 6 s 8096 9949',
20865         'STATE 3 t 9951 9950',
20866         'STATE 4 c 8160 8152',
20867         'STATE 6 o 9953 9952',
20868         'STATE 6 z 8160 9954',
20869         'STATE 2 e 8152 8160',
20870         'STATE 3 b 8152 8160',
20871         'STATE 3 c 8152 8275',
20872         'STATE 2 t 8096 9955',
20873         'STATE 2 e 8160 9956',
20874         'STATE 2 t 8100 9957',
20875         'STATE 1 l 8100 9958',
20876         'STATE 4 f 8100 9959',
20877         'STATE 4 c 9918 9198',
20878         'STATE 6 r 8160 9960',
20879         'STATE 4 g 8160 9643',
20880         'STATE 4 c 8160 9961',
20881         'STATE 2 t 8160 9962',
20882         'STATE 4 b 8160 8275',
20883         'STATE 1 c 8160 9963',
20884         'STATE 6 n 9964 8096',
20885         'STATE 2 h 8160 9965',
20886         'STATE 6 n 8100 9966',
20887         'STATE 1 i 8075 9967',
20888         'STATE 6 s 8152 9968',
20889         'STATE 1 m 8160 9969',
20890         'STATE 1 m 8152 8160',
20891         'STATE 3 t 8096 9970',
20892         'STATE 3 v 8152 9971',
20893         'STATE 2 c 8096 8160',
20894         'STATE 2 r 8160 9972',
20895         'STATE 1 m 8100 8075',
20896         'STATE 2 y 8075 9973',
20897         'STATE 1 a 9975 9974',
20898         'STATE 2 e 8160 9976',
20899         'STATE 1 e 8160 9977',
20900         'STATE 6 n 9979 9978',
20901         'STATE 4 d 8152 9980',
20902         'STATE 1 a 8075 9981',
20903         'STATE 3 n 8152 9982',
20904         'STATE 2 l 8152 9983',
20905         'STATE 4 b 8096 9984',
20906         'STATE 1 0 8096 9985',
20907         'STATE 2 n 8160 9986',
20908         'STATE 3 r 8275 9987',
20909         'STATE 2 l 8160 9988',
20910         'STATE 3 h 8100 8075',
20911         'STATE 2 o 9989 8152',
20912         'STATE 6 i 8275 8152',
20913         'STATE 4 d 9198 9990',
20914         'STATE 6 n 8160 9991',
20915         'STATE 2 p 8096 8275',
20916         'STATE 3 i 8160 9992',
20917         'STATE 1 p 8160 9993',
20918         'STATE 5 n 8275 8152',
20919         'STATE 3 r 8160 9994',
20920         'STATE 2 h 8096 8160',
20921         'STATE 1 # 8160 8096',
20922         'STATE 3 r 8160 9995',
20923         'STATE 3 t 8096 8160',
20924         'STATE 1 g 8160 9996',
20925         'STATE 3 l 8152 9997',
20926         'STATE 3 n 8295 8160',
20927         'INDEX 9998 p',
20928         'STATE 4 p 10000 9999',
20929         'STATE 4 h 10002 10001',
20930         'PHONE epsilon',
20931         'STATE 4 f 10004 10003',
20932         'STATE 2 # 10006 10005',
20933         'STATE 4 s 10008 10007',
20934         'STATE 2 0 10000 10009',
20935         'STATE 2 h 10011 10010',
20936         'STATE 3 u 10009 10010',
20937         'STATE 3 p 10009 10012',
20938         'STATE 2 0 10000 10013',
20939         'PHONE p',
20940         'PHONE f',
20941         'STATE 3 e 10009 10010',
20942         'STATE 4 t 10004 10014',
20943         'STATE 2 o 10015 10009',
20944         'STATE 4 b 10017 10016',
20945         'STATE 3 r 10000 10009',
20946         'STATE 4 n 10004 10009',
20947         'STATE 2 a 10000 10009',
20948         'INDEX 10018 q',
20949         'PHONE k',
20950         'INDEX 10019 r',
20951         'STATE 3 e 10021 10020',
20952         'STATE 4 r 10023 10022',
20953         'STATE 1 # 10025 10024',
20954         'STATE 1 0 10027 10026',
20955         'STATE 2 c 10029 10028',
20956         'STATE 4 # 10031 10030',
20957         'STATE 4 r 10033 10032',
20958         'STATE 3 u 10035 10034',
20959         'STATE 3 u 10037 10036',
20960         'STATE 1 0 10029 10038',
20961         'PHONE epsilon',
20962         'STATE 4 r 10040 10039',
20963         'STATE 2 e 10042 10041',
20964         'STATE 4 i 10044 10043',
20965         'STATE 2 p 10046 10045',
20966         'STATE 3 o 10048 10047',
20967         'STATE 1 # 10050 10049',
20968         'STATE 3 i 10052 10051',
20969         'STATE 4 i 10029 10053',
20970         'STATE 2 b 10029 10054',
20971         'STATE 4 i 10056 10055',
20972         'STATE 2 v 10058 10057',
20973         'STATE 2 i 10058 10059',
20974         'PHONE r',
20975         'STATE 4 e 10061 10060',
20976         'STATE 2 p 10063 10062',
20977         'STATE 2 t 10029 10064',
20978         'STATE 5 i 10058 10065',
20979         'STATE 3 i 10067 10066',
20980         'STATE 2 w 10069 10068',
20981         'STATE 2 o 10071 10070',
20982         'STATE 4 i 10073 10072',
20983         'STATE 3 a 10075 10074',
20984         'STATE 4 o 10058 10076',
20985         'STATE 4 a 10042 10077',
20986         'STATE 3 a 10079 10078',
20987         'STATE 2 i 10081 10080',
20988         'STATE 5 n 10083 10082',
20989         'STATE 1 n 10085 10084',
20990         'PHONE er',
20991         'STATE 2 u 10058 10086',
20992         'STATE 4 o 10088 10087',
20993         'STATE 2 p 10058 10089',
20994         'STATE 5 v 10058 10090',
20995         'STATE 5 o 10042 10091',
20996         'STATE 2 g 10042 10092',
20997         'STATE 5 e 10058 10093',
20998         'STATE 3 r 10095 10094',
20999         'STATE 2 a 10042 10096',
21000         'STATE 1 # 10098 10097',
21001         'STATE 1 # 10093 10099',
21002         'STATE 2 a 10101 10100',
21003         'STATE 1 j 10093 10102',
21004         'STATE 4 o 10042 10103',
21005         'STATE 2 k 10058 10042',
21006         'STATE 4 z 10105 10104',
21007         'STATE 4 o 10107 10106',
21008         'STATE 5 i 10093 10108',
21009         'STATE 4 b 10058 10109',
21010         'STATE 2 w 10029 10110',
21011         'STATE 2 g 10029 10111',
21012         'STATE 5 # 10113 10112',
21013         'STATE 4 s 10114 10042',
21014         'STATE 5 z 10058 10115',
21015         'STATE 2 e 10042 10116',
21016         'STATE 2 h 10117 10029',
21017         'STATE 5 e 10058 10029',
21018         'STATE 2 a 10042 10058',
21019         'STATE 4 a 10119 10118',
21020         'STATE 2 p 10121 10120',
21021         'STATE 2 t 10058 10122',
21022         'STATE 5 s 10124 10123',
21023         'STATE 5 s 10042 10058',
21024         'STATE 2 m 10029 10125',
21025         'PHONE er1',
21026         'STATE 3 a 10127 10126',
21027         'STATE 2 u 10129 10128',
21028         'STATE 4 e 10131 10130',
21029         'STATE 4 # 10133 10132',
21030         'STATE 4 o 10135 10134',
21031         'STATE 4 k 10093 10136',
21032         'STATE 4 e 10138 10137',
21033         'STATE 1 t 10058 10042',
21034         'STATE 5 s 10140 10139',
21035         'STATE 4 a 10042 10141',
21036         'STATE 3 o 10142 10042',
21037         'STATE 3 g 10093 10143',
21038         'STATE 5 s 10144 10042',
21039         'STATE 5 u 10058 10042',
21040         'STATE 4 a 10042 10145',
21041         'STATE 4 e 10029 10146',
21042         'STATE 2 d 10148 10147',
21043         'STATE 1 # 10150 10149',
21044         'STATE 1 0 10152 10151',
21045         'STATE 4 a 10154 10153',
21046         'STATE 5 # 10058 10042',
21047         'STATE 5 e 10156 10155',
21048         'STATE 1 t 10058 10157',
21049         'STATE 1 s 10042 10029',
21050         'STATE 2 p 10159 10158',
21051         'STATE 5 # 10042 10160',
21052         'STATE 5 u 10058 10161',
21053         'STATE 5 n 10042 10058',
21054         'STATE 5 s 10042 10162',
21055         'STATE 2 d 10042 10163',
21056         'STATE 2 d 10058 10042',
21057         'STATE 2 h 10029 10164',
21058         'STATE 5 # 10166 10165',
21059         'STATE 2 e 10168 10167',
21060         'STATE 1 c 10170 10169',
21061         'STATE 1 s 10058 10171',
21062         'STATE 4 a 10173 10172',
21063         'STATE 2 m 10042 10174',
21064         'STATE 4 s 10176 10175',
21065         'STATE 2 c 10042 10177',
21066         'STATE 4 a 10179 10178',
21067         'STATE 2 b 10180 10042',
21068         'STATE 4 t 10182 10181',
21069         'STATE 4 a 10184 10183',
21070         'STATE 2 t 10058 10185',
21071         'STATE 1 c 10187 10186',
21072         'STATE 1 n 10093 10042',
21073         'STATE 4 e 10042 10188',
21074         'STATE 5 g 10144 10042',
21075         'STATE 5 y 10058 10042',
21076         'STATE 4 i 10058 10042',
21077         'STATE 4 i 10042 10189',
21078         'STATE 5 u 10058 10093',
21079         'STATE 3 i 10190 10029',
21080         'STATE 5 a 10042 10029',
21081         'STATE 5 a 10029 10191',
21082         'STATE 2 f 10029 10192',
21083         'STATE 5 i 10194 10193',
21084         'STATE 4 a 10042 10195',
21085         'STATE 4 o 10042 10196',
21086         'STATE 2 h 10058 10042',
21087         'STATE 5 # 10042 10197',
21088         'STATE 2 p 10042 10058',
21089         'STATE 1 n 10058 10198',
21090         'STATE 4 u 10042 10199',
21091         'STATE 4 u 10058 10200',
21092         'STATE 2 d 10042 10201',
21093         'STATE 2 f 10058 10042',
21094         'STATE 2 j 10042 10202',
21095         'STATE 5 d 10058 10042',
21096         'STATE 2 c 10029 10203',
21097         'STATE 4 z 10058 10204',
21098         'STATE 4 e 10205 10042',
21099         'STATE 1 # 10207 10206',
21100         'STATE 4 n 10209 10208',
21101         'STATE 1 # 10211 10210',
21102         'STATE 2 a 10042 10212',
21103         'STATE 5 c 10058 10213',
21104         'STATE 4 o 10215 10214',
21105         'STATE 5 # 10042 10216',
21106         'STATE 5 c 10058 10217',
21107         'STATE 4 d 10219 10218',
21108         'STATE 5 # 10221 10220',
21109         'STATE 2 o 10042 10222',
21110         'STATE 2 c 10224 10223',
21111         'STATE 5 i 10058 10042',
21112         'STATE 5 w 10058 10093',
21113         'STATE 1 s 10042 10225',
21114         'STATE 1 s 10058 10226',
21115         'STATE 4 g 10228 10227',
21116         'STATE 5 # 10042 10229',
21117         'STATE 2 s 10231 10230',
21118         'STATE 1 f 10042 10232',
21119         'STATE 5 g 10093 10233',
21120         'STATE 2 s 10235 10234',
21121         'STATE 4 e 10042 10093',
21122         'STATE 5 e 10029 10236',
21123         'STATE 2 m 10029 10237',
21124         'STATE 2 t 10029 10238',
21125         'STATE 2 e 10042 10239',
21126         'STATE 4 s 10241 10240',
21127         'STATE 4 o 10042 10242',
21128         'STATE 4 e 10042 10243',
21129         'STATE 5 o 10042 10244',
21130         'STATE 2 f 10058 10245',
21131         'STATE 4 y 10042 10246',
21132         'STATE 4 l 10093 10247',
21133         'STATE 5 s 10042 10248',
21134         'STATE 2 d 10042 10249',
21135         'STATE 2 j 10029 10250',
21136         'STATE 3 y 10252 10251',
21137         'STATE 3 y 10042 10253',
21138         'STATE 4 # 10255 10254',
21139         'STATE 4 o 10257 10256',
21140         'STATE 5 h 10093 10258',
21141         'STATE 5 # 10259 10093',
21142         'STATE 2 a 10261 10260',
21143         'STATE 2 a 10262 10042',
21144         'STATE 4 i 10042 10263',
21145         'STATE 1 d 10029 10264',
21146         'STATE 4 i 10266 10265',
21147         'STATE 5 n 10267 10042',
21148         'STATE 1 d 10058 10268',
21149         'STATE 2 o 10042 10269',
21150         'STATE 4 a 10271 10270',
21151         'STATE 2 f 10272 10042',
21152         'STATE 5 h 10058 10042',
21153         'STATE 2 o 10042 10058',
21154         'STATE 2 t 10058 10273',
21155         'STATE 4 t 10042 10274',
21156         'STATE 4 s 10275 10042',
21157         'STATE 1 r 10093 10276',
21158         'STATE 1 t 10093 10277',
21159         'STATE 4 i 10279 10278',
21160         'STATE 2 b 10058 10093',
21161         'STATE 5 l 10058 10280',
21162         'STATE 1 i 10029 10281',
21163         'STATE 1 n 10042 10282',
21164         'STATE 5 e 10042 10283',
21165         'STATE 5 e 10284 10042',
21166         'STATE 4 y 10042 10285',
21167         'STATE 4 v 10058 10286',
21168         'STATE 1 # 10042 10029',
21169         'STATE 1 c 10029 10287',
21170         'STATE 5 # 10042 10288',
21171         'STATE 2 d 10058 10289',
21172         'STATE 2 s 10093 10290',
21173         'STATE 1 o 10058 10093',
21174         'STATE 4 u 10042 10291',
21175         'STATE 2 e 10042 10292',
21176         'STATE 5 a 10294 10293',
21177         'STATE 2 h 10058 10295',
21178         'STATE 5 a 10297 10296',
21179         'STATE 4 v 10058 10298',
21180         'STATE 2 p 10058 10299',
21181         'STATE 2 b 10121 10042',
21182         'STATE 2 k 10029 10300',
21183         'STATE 4 o 10042 10301',
21184         'STATE 4 n 10093 10302',
21185         'STATE 3 c 10058 10303',
21186         'STATE 4 d 10305 10304',
21187         'STATE 2 l 10058 10306',
21188         'STATE 4 a 10308 10307',
21189         'STATE 5 # 10042 10309',
21190         'STATE 4 l 10093 10310',
21191         'STATE 1 h 10058 10093',
21192         'STATE 1 f 10312 10311',
21193         'STATE 1 b 10042 10313',
21194         'STATE 4 o 10042 10314',
21195         'STATE 5 # 10042 10315',
21196         'STATE 5 l 10042 10316',
21197         'STATE 4 # 10042 10317',
21198         'STATE 2 p 10042 10318',
21199         'STATE 2 v 10042 10319',
21200         'STATE 5 t 10319 10320',
21201         'STATE 5 d 10058 10321',
21202         'STATE 5 z 10058 10322',
21203         'STATE 5 # 10154 10323',
21204         'STATE 5 # 10058 10324',
21205         'STATE 1 a 10325 10058',
21206         'STATE 5 r 10042 10326',
21207         'STATE 5 e 10058 10042',
21208         'STATE 5 # 10327 10093',
21209         'STATE 1 e 10093 10328',
21210         'STATE 4 y 10330 10329',
21211         'STATE 1 i 10029 10331',
21212         'STATE 5 t 10333 10332',
21213         'STATE 2 e 10093 10334',
21214         'STATE 1 s 10042 10058',
21215         'STATE 5 o 10042 10335',
21216         'STATE 4 s 10042 10093',
21217         'STATE 4 u 10042 10336',
21218         'STATE 5 e 10093 10337',
21219         'STATE 2 h 10029 10338',
21220         'STATE 2 j 10029 10339',
21221         'STATE 5 e 10341 10340',
21222         'STATE 4 m 10343 10342',
21223         'STATE 5 c 10042 10093',
21224         'STATE 4 s 10058 10344',
21225         'STATE 1 0 10042 10345',
21226         'STATE 2 l 10058 10042',
21227         'STATE 2 i 10042 10058',
21228         'STATE 5 o 10347 10346',
21229         'STATE 4 d 10042 10348',
21230         'STATE 4 f 10058 10349',
21231         'STATE 5 l 10042 10350',
21232         'STATE 5 e 10352 10351',
21233         'STATE 4 a 10354 10353',
21234         'STATE 4 t 10093 10355',
21235         'STATE 1 f 10058 10356',
21236         'STATE 5 t 10358 10357',
21237         'STATE 5 # 10360 10359',
21238         'STATE 2 g 10058 10361',
21239         'STATE 4 i 10363 10362',
21240         'STATE 2 h 10324 10364',
21241         'STATE 2 p 10366 10365',
21242         'STATE 1 l 10368 10367',
21243         'STATE 1 t 10370 10369',
21244         'STATE 5 d 10093 10371',
21245         'STATE 1 e 10058 10372',
21246         'STATE 5 v 10058 10373',
21247         'STATE 5 c 10058 10374',
21248         'STATE 5 t 10093 10375',
21249         'STATE 2 e 10042 10376',
21250         'STATE 5 # 10042 10377',
21251         'STATE 1 # 10042 10058',
21252         'STATE 2 h 10042 10378',
21253         'STATE 2 f 10380 10379',
21254         'STATE 4 o 10382 10381',
21255         'STATE 5 t 10384 10383',
21256         'STATE 5 s 10058 10042',
21257         'STATE 2 d 10042 10058',
21258         'STATE 4 n 10042 10385',
21259         'STATE 4 d 10093 10058',
21260         'STATE 1 l 10058 10093',
21261         'STATE 4 o 10387 10386',
21262         'STATE 2 b 10042 10058',
21263         'STATE 2 c 10042 10388',
21264         'STATE 2 c 10029 10389',
21265         'STATE 2 t 10058 10029',
21266         'STATE 2 j 10058 10390',
21267         'STATE 1 p 10042 10391',
21268         'STATE 5 u 10393 10392',
21269         'STATE 4 m 10058 10394',
21270         'STATE 5 e 10029 10395',
21271         'STATE 5 i 10029 10396',
21272         'STATE 2 h 10398 10397',
21273         'STATE 2 o 10042 10399',
21274         'STATE 4 e 10042 10400',
21275         'STATE 1 e 10093 10401',
21276         'STATE 2 b 10058 10402',
21277         'STATE 2 d 10058 10403',
21278         'STATE 5 u 10405 10404',
21279         'STATE 2 v 10058 10406',
21280         'STATE 2 d 10093 10407',
21281         'STATE 4 n 10058 10408',
21282         'STATE 5 t 10042 10409',
21283         'STATE 2 d 10042 10410',
21284         'STATE 2 f 10042 10029',
21285         'STATE 5 c 10042 10411',
21286         'STATE 3 h 10412 10042',
21287         'STATE 4 o 10042 10413',
21288         'STATE 3 t 10058 10414',
21289         'STATE 4 s 10416 10415',
21290         'STATE 4 i 10418 10417',
21291         'STATE 2 w 10420 10419',
21292         'STATE 2 o 10042 10421',
21293         'STATE 2 n 10058 10422',
21294         'STATE 4 e 10275 10042',
21295         'STATE 5 t 10042 10423',
21296         'STATE 5 d 10425 10424',
21297         'STATE 2 m 10058 10426',
21298         'STATE 5 l 10058 10042',
21299         'STATE 4 s 10428 10427',
21300         'STATE 4 # 10058 10144',
21301         'STATE 1 w 10430 10429',
21302         'STATE 2 o 10042 10431',
21303         'STATE 5 r 10058 10432',
21304         'STATE 1 g 10042 10433',
21305         'STATE 4 i 10042 10058',
21306         'STATE 4 e 10435 10434',
21307         'STATE 4 e 10093 10436',
21308         'STATE 4 u 10042 10437',
21309         'STATE 1 a 10058 10438',
21310         'STATE 5 b 10042 10439',
21311         'STATE 5 s 10282 10440',
21312         'STATE 5 f 10042 10058',
21313         'STATE 1 s 10442 10441',
21314         'STATE 5 u 10444 10443',
21315         'STATE 1 o 10058 10445',
21316         'STATE 1 r 10058 10446',
21317         'STATE 4 g 10448 10447',
21318         'STATE 4 # 10450 10449',
21319         'STATE 2 e 10042 10451',
21320         'STATE 5 a 10042 10452',
21321         'STATE 1 a 10058 10042',
21322         'STATE 1 r 10029 10453',
21323         'STATE 1 s 10058 10454',
21324         'STATE 5 i 10093 10455',
21325         'STATE 2 p 10058 10093',
21326         'STATE 4 p 10058 10093',
21327         'STATE 1 s 10042 10456',
21328         'STATE 5 y 10029 10457',
21329         'STATE 4 v 10459 10458',
21330         'STATE 4 m 10093 10460',
21331         'STATE 2 b 10058 10461',
21332         'STATE 2 d 10058 10462',
21333         'STATE 1 x 10093 10463',
21334         'STATE 4 y 10058 10464',
21335         'STATE 5 s 10466 10465',
21336         'STATE 5 i 10468 10467',
21337         'STATE 4 m 10058 10469',
21338         'STATE 2 b 10470 10093',
21339         'STATE 2 c 10093 10471',
21340         'STATE 4 c 10065 10472',
21341         'STATE 2 g 10058 10473',
21342         'STATE 5 i 10029 10474',
21343         'STATE 4 # 10042 10475',
21344         'STATE 2 a 10058 10042',
21345         'STATE 2 m 10042 10476',
21346         'STATE 1 a 10058 10477',
21347         'STATE 5 z 10479 10478',
21348         'STATE 5 # 10480 10042',
21349         'STATE 1 s 10042 10481',
21350         'STATE 2 l 10042 10482',
21351         'STATE 5 s 10484 10483',
21352         'STATE 5 l 10058 10485',
21353         'STATE 2 w 10058 10486',
21354         'STATE 2 a 10042 10487',
21355         'STATE 2 p 10042 10488',
21356         'STATE 5 # 10042 10489',
21357         'STATE 2 p 10058 10042',
21358         'STATE 5 u 10058 10249',
21359         'STATE 4 # 10042 10490',
21360         'STATE 5 # 10042 10491',
21361         'STATE 1 u 10493 10492',
21362         'STATE 4 i 10093 10042',
21363         'STATE 2 i 10093 10494',
21364         'STATE 4 o 10042 10495',
21365         'STATE 5 s 10042 10496',
21366         'STATE 5 b 10058 10497',
21367         'STATE 5 s 10042 10498',
21368         'STATE 4 o 10500 10499',
21369         'STATE 4 y 10042 10501',
21370         'STATE 1 q 10058 10502',
21371         'STATE 5 l 10042 10503',
21372         'STATE 5 t 10058 10504',
21373         'STATE 2 b 10506 10505',
21374         'STATE 4 t 10042 10507',
21375         'STATE 2 b 10058 10508',
21376         'STATE 1 t 10093 10058',
21377         'STATE 5 b 10058 10509',
21378         'STATE 1 c 10058 10510',
21379         'STATE 5 z 10058 10511',
21380         'STATE 2 f 10179 10042',
21381         'STATE 4 u 10042 10512',
21382         'STATE 1 a 10058 10513',
21383         'STATE 5 # 10042 10058',
21384         'STATE 5 z 10058 10514',
21385         'STATE 1 e 10515 10042',
21386         'STATE 1 l 10058 10516',
21387         'STATE 4 v 10093 10517',
21388         'STATE 2 v 10042 10029',
21389         'STATE 2 d 10029 10518',
21390         'STATE 4 n 10520 10519',
21391         'STATE 5 a 10521 10058',
21392         'STATE 1 t 10523 10522',
21393         'STATE 2 t 10525 10524',
21394         'STATE 4 c 10527 10526',
21395         'STATE 2 t 10058 10528',
21396         'STATE 4 m 10093 10529',
21397         'STATE 1 l 10058 10530',
21398         'STATE 2 v 10042 10058',
21399         'STATE 5 e 10531 10093',
21400         'STATE 4 l 10228 10532',
21401         'STATE 2 m 10058 10093',
21402         'STATE 4 t 10058 10093',
21403         'STATE 2 f 10058 10533',
21404         'STATE 4 k 10093 10534',
21405         'STATE 5 r 10058 10535',
21406         'STATE 2 s 10042 10029',
21407         'STATE 3 d 10537 10536',
21408         'STATE 2 s 10538 10042',
21409         'STATE 3 d 10042 10539',
21410         'STATE 5 n 10541 10540',
21411         'STATE 4 i 10058 10542',
21412         'STATE 1 s 10042 10543',
21413         'STATE 1 i 10058 10544',
21414         'STATE 2 m 10042 10545',
21415         'STATE 5 l 10058 10546',
21416         'STATE 1 b 10042 10547',
21417         'STATE 1 k 10058 10548',
21418         'STATE 2 c 10042 10549',
21419         'STATE 1 l 10551 10550',
21420         'STATE 5 e 10552 10042',
21421         'STATE 5 m 10042 10553',
21422         'STATE 5 n 10042 10554',
21423         'STATE 5 e 10093 10555',
21424         'STATE 4 h 10058 10556',
21425         'STATE 5 # 10042 10557',
21426         'STATE 4 u 10058 10558',
21427         'STATE 4 e 10042 10559',
21428         'STATE 1 f 10042 10560',
21429         'STATE 5 p 10058 10561',
21430         'STATE 5 l 10042 10058',
21431         'STATE 4 # 10093 10562',
21432         'STATE 5 w 10093 10042',
21433         'STATE 2 o 10042 10563',
21434         'STATE 2 c 10058 10042',
21435         'STATE 2 t 10042 10564',
21436         'STATE 5 r 10058 10565',
21437         'STATE 5 d 10567 10566',
21438         'STATE 4 t 10042 10568',
21439         'STATE 4 e 10042 10569',
21440         'STATE 1 o 10058 10042',
21441         'STATE 2 h 10042 10570',
21442         'STATE 1 i 10058 10571',
21443         'STATE 4 e 10042 10572',
21444         'STATE 5 t 10058 10573',
21445         'STATE 2 e 10575 10574',
21446         'STATE 2 t 10577 10576',
21447         'STATE 2 c 10042 10029',
21448         'STATE 4 a 10042 10578',
21449         'STATE 5 l 10093 10579',
21450         'STATE 2 p 10029 10580',
21451         'STATE 2 r 10042 10581',
21452         'STATE 1 o 10058 10582',
21453         'STATE 2 s 10583 10058',
21454         'STATE 4 e 10042 10584',
21455         'STATE 5 p 10042 10585',
21456         'STATE 1 o 10058 10586',
21457         'STATE 1 n 10058 10587',
21458         'STATE 4 t 10589 10588',
21459         'STATE 2 x 10058 10093',
21460         'STATE 2 d 10093 10058',
21461         'STATE 4 k 10093 10590',
21462         'STATE 2 m 10592 10591',
21463         'STATE 4 m 10594 10593',
21464         'STATE 4 d 10093 10595',
21465         'STATE 2 g 10058 10596',
21466         'STATE 5 i 10598 10597',
21467         'STATE 5 f 10058 10599',
21468         'STATE 1 # 10042 10600',
21469         'STATE 5 n 10601 10042',
21470         'STATE 5 a 10042 10058',
21471         'STATE 2 a 10058 10602',
21472         'STATE 5 v 10058 10603',
21473         'STATE 2 m 10058 10604',
21474         'STATE 4 c 10058 10042',
21475         'STATE 1 l 10058 10605',
21476         'STATE 1 p 10058 10606',
21477         'STATE 2 g 10058 10042',
21478         'STATE 5 i 10607 10042',
21479         'STATE 2 u 10042 10608',
21480         'STATE 5 e 10058 10324',
21481         'STATE 2 a 10042 10609',
21482         'STATE 2 s 10611 10610',
21483         'STATE 2 i 10058 10612',
21484         'STATE 2 v 10058 10042',
21485         'STATE 2 g 10042 10613',
21486         'STATE 1 y 10042 10614',
21487         'STATE 1 h 10093 10042',
21488         'STATE 1 g 10616 10615',
21489         'STATE 4 i 10058 10029',
21490         'STATE 5 n 10617 10042',
21491         'STATE 5 l 10093 10618',
21492         'STATE 1 i 10058 10619',
21493         'STATE 4 a 10058 10620',
21494         'STATE 5 e 10093 10621',
21495         'STATE 1 # 10623 10622',
21496         'STATE 2 v 10042 10624',
21497         'STATE 2 t 10114 10042',
21498         'STATE 4 y 10626 10625',
21499         'STATE 4 e 10058 10042',
21500         'STATE 5 n 10058 10627',
21501         'STATE 2 t 10042 10628',
21502         'STATE 5 s 10042 10629',
21503         'STATE 2 p 10058 10630',
21504         'STATE 2 b 10042 10631',
21505         'STATE 2 b 10633 10632',
21506         'STATE 1 s 10093 10634',
21507         'STATE 1 t 10042 10635',
21508         'STATE 5 n 10636 10042',
21509         'STATE 5 n 10058 10324',
21510         'STATE 4 # 10042 10637',
21511         'STATE 2 t 10093 10638',
21512         'STATE 2 h 10042 10639',
21513         'STATE 4 t 10641 10640',
21514         'STATE 2 b 10058 10642',
21515         'STATE 1 e 10058 10093',
21516         'STATE 5 y 10058 10643',
21517         'STATE 4 t 10093 10644',
21518         'STATE 1 t 10058 10645',
21519         'STATE 1 e 10093 10058',
21520         'STATE 4 n 10647 10646',
21521         'STATE 2 b 10058 10648',
21522         'STATE 2 v 10058 10649',
21523         'STATE 1 s 10042 10650',
21524         'STATE 1 a 10042 10651',
21525         'STATE 4 g 10652 10093',
21526         'STATE 2 f 10058 10093',
21527         'STATE 2 t 10093 10653',
21528         'STATE 4 m 10093 10654',
21529         'STATE 4 m 10093 10655',
21530         'STATE 4 m 10058 10093',
21531         'STATE 2 c 10058 10656',
21532         'STATE 5 s 10657 10042',
21533         'STATE 4 e 10658 10042',
21534         'STATE 2 e 10042 10659',
21535         'STATE 1 s 10661 10660',
21536         'STATE 4 o 10058 10662',
21537         'STATE 1 u 10058 10663',
21538         'STATE 1 e 10058 10664',
21539         'STATE 2 n 10042 10665',
21540         'STATE 2 y 10042 10058',
21541         'STATE 2 y 10042 10666',
21542         'STATE 1 m 10058 10667',
21543         'STATE 1 s 10058 10042',
21544         'STATE 2 m 10058 10042',
21545         'STATE 5 n 10668 10042',
21546         'STATE 5 o 10670 10669',
21547         'STATE 1 p 10042 10671',
21548         'STATE 2 e 10029 10042',
21549         'STATE 4 a 10058 10093',
21550         'STATE 5 n 10672 10042',
21551         'STATE 5 w 10029 10673',
21552         'STATE 4 o 10058 10042',
21553         'STATE 4 y 10093 10674',
21554         'STATE 5 a 10058 10675',
21555         'STATE 2 v 10676 10093',
21556         'STATE 1 a 10042 10656',
21557         'STATE 4 n 10678 10677',
21558         'STATE 1 a 10042 10679',
21559         'STATE 5 e 10042 10680',
21560         'STATE 2 c 10042 10681',
21561         'STATE 2 p 10058 10682',
21562         'STATE 2 c 10058 10683',
21563         'STATE 4 b 10179 10042',
21564         'STATE 5 a 10685 10684',
21565         'STATE 1 l 10058 10686',
21566         'STATE 2 c 10093 10058',
21567         'STATE 1 s 10058 10093',
21568         'STATE 2 s 10042 10058',
21569         'STATE 4 s 10042 10687',
21570         'STATE 5 o 10689 10688',
21571         'STATE 5 e 10029 10690',
21572         'STATE 5 s 10692 10691',
21573         'STATE 2 b 10694 10693',
21574         'STATE 1 a 10696 10695',
21575         'STATE 4 t 10093 10697',
21576         'STATE 4 e 10163 10058',
21577         'STATE 2 p 10699 10698',
21578         'STATE 1 s 10700 10058',
21579         'STATE 1 o 10058 10701',
21580         'STATE 1 e 10093 10702',
21581         'STATE 4 t 10058 10703',
21582         'STATE 1 x 10042 10704',
21583         'STATE 5 c 10058 10042',
21584         'STATE 2 s 10042 10093',
21585         'STATE 2 v 10093 10705',
21586         'STATE 2 m 10058 10706',
21587         'STATE 4 p 10058 10707',
21588         'STATE 5 n 10058 10042',
21589         'STATE 1 s 10058 10708',
21590         'STATE 2 n 10058 10042',
21591         'STATE 3 b 10058 10042',
21592         'STATE 5 b 10058 10709',
21593         'STATE 5 c 10042 10710',
21594         'STATE 1 g 10042 10711',
21595         'STATE 1 i 10042 10058',
21596         'STATE 1 c 10058 10389',
21597         'STATE 1 e 10042 10712',
21598         'STATE 2 k 10058 10713',
21599         'STATE 2 f 10042 10714',
21600         'STATE 2 b 10058 10042',
21601         'STATE 4 d 10555 10715',
21602         'STATE 1 d 10093 10042',
21603         'STATE 2 i 10029 10716',
21604         'STATE 4 a 10042 10093',
21605         'STATE 4 y 10042 10717',
21606         'STATE 5 # 10042 10430',
21607         'STATE 2 k 10689 10093',
21608         'STATE 5 i 10058 10093',
21609         'STATE 5 # 10719 10718',
21610         'STATE 5 # 10720 10042',
21611         'STATE 1 c 10058 10721',
21612         'STATE 4 g 10042 10722',
21613         'STATE 4 f 10042 10723',
21614         'STATE 1 c 10058 10724',
21615         'STATE 1 o 10058 10725',
21616         'STATE 1 s 10093 10726',
21617         'STATE 4 b 10058 10093',
21618         'STATE 4 s 10093 10727',
21619         'STATE 1 m 10042 10567',
21620         'STATE 4 g 10093 10728',
21621         'STATE 4 k 10058 10093',
21622         'STATE 2 w 10042 10729',
21623         'STATE 2 o 10042 10730',
21624         'STATE 1 i 10042 10731',
21625         'STATE 2 u 10042 10732',
21626         'STATE 5 s 10058 10733',
21627         'STATE 2 t 10735 10734',
21628         'STATE 5 a 10093 10058',
21629         'STATE 4 a 10058 10736',
21630         'STATE 2 g 10058 10737',
21631         'STATE 1 s 10738 10058',
21632         'STATE 4 o 10058 10739',
21633         'STATE 2 t 10740 10093',
21634         'STATE 1 d 10058 10741',
21635         'STATE 2 t 10058 10742',
21636         'STATE 2 h 10042 10743',
21637         'STATE 2 c 10744 10093',
21638         'STATE 2 b 10093 10745',
21639         'STATE 5 u 10746 10470',
21640         'STATE 3 p 10042 10747',
21641         'STATE 5 y 10749 10748',
21642         'STATE 2 t 10042 10750',
21643         'STATE 4 a 10154 10751',
21644         'STATE 2 c 10042 10752',
21645         'STATE 2 u 10042 10753',
21646         'STATE 1 s 10755 10754',
21647         'STATE 4 i 10042 10756',
21648         'STATE 5 # 10042 10757',
21649         'STATE 5 n 10759 10758',
21650         'STATE 1 o 10761 10760',
21651         'STATE 2 f 10762 10042',
21652         'STATE 1 g 10042 10763',
21653         'STATE 2 t 10042 10764',
21654         'STATE 5 # 10765 10058',
21655         'STATE 5 # 10042 10766',
21656         'STATE 2 n 10058 10767',
21657         'STATE 1 a 10058 10612',
21658         'STATE 2 e 10093 10768',
21659         'STATE 5 a 10093 10769',
21660         'STATE 5 a 10470 10093',
21661         'STATE 2 m 10042 10770',
21662         'STATE 4 a 10772 10771',
21663         'STATE 4 u 10058 10773',
21664         'STATE 5 s 10775 10774',
21665         'STATE 5 y 10058 10776',
21666         'STATE 5 a 10058 10777',
21667         'STATE 1 s 10093 10058',
21668         'STATE 4 o 10042 10778',
21669         'STATE 4 l 10058 10779',
21670         'STATE 4 s 10093 10058',
21671         'STATE 4 l 10093 10058',
21672         'STATE 1 a 10093 10058',
21673         'STATE 2 v 10093 10058',
21674         'STATE 4 d 10058 10780',
21675         'STATE 1 n 10058 10781',
21676         'STATE 4 t 10093 10058',
21677         'STATE 2 h 10093 10782',
21678         'STATE 4 s 10058 10093',
21679         'STATE 4 u 10042 10783',
21680         'STATE 4 y 10785 10784',
21681         'STATE 1 u 10058 10786',
21682         'STATE 2 c 10042 10787',
21683         'STATE 4 t 10042 10788',
21684         'STATE 2 u 10042 10789',
21685         'STATE 1 p 10058 10790',
21686         'STATE 2 t 10058 10791',
21687         'STATE 2 t 10042 10425',
21688         'STATE 1 h 10042 10792',
21689         'STATE 4 a 10794 10793',
21690         'STATE 5 c 10042 10795',
21691         'STATE 1 m 10042 10796',
21692         'STATE 1 a 10798 10797',
21693         'STATE 4 t 10042 10799',
21694         'STATE 4 t 10058 10042',
21695         'STATE 2 h 10058 10800',
21696         'STATE 2 s 10058 10801',
21697         'STATE 1 l 10058 10802',
21698         'STATE 5 e 10042 10373',
21699         'STATE 5 n 10804 10803',
21700         'STATE 5 o 10093 10805',
21701         'STATE 1 y 10058 10806',
21702         'STATE 2 n 10042 10029',
21703         'STATE 4 e 10808 10807',
21704         'STATE 1 m 10042 10809',
21705         'STATE 4 a 10042 10810',
21706         'STATE 2 c 10058 10811',
21707         'STATE 2 s 10093 10058',
21708         'STATE 1 l 10093 10042',
21709         'STATE 5 o 10058 10093',
21710         'STATE 4 n 10093 10812',
21711         'STATE 4 e 10058 10813',
21712         'STATE 4 n 10058 10093',
21713         'STATE 2 v 10058 10814',
21714         'STATE 4 b 10058 10815',
21715         'STATE 3 g 10042 10816',
21716         'STATE 5 # 10818 10817',
21717         'STATE 2 n 10042 10819',
21718         'STATE 4 t 10042 10058',
21719         'STATE 5 e 10042 10820',
21720         'STATE 1 s 10042 10821',
21721         'STATE 2 o 10042 10822',
21722         'STATE 1 y 10058 10823',
21723         'STATE 1 u 10058 10824',
21724         'STATE 4 e 10042 10825',
21725         'STATE 5 r 10042 10826',
21726         'STATE 1 s 10029 10042',
21727         'STATE 1 j 10042 10827',
21728         'STATE 4 e 10042 10828',
21729         'STATE 2 r 10058 10829',
21730         'STATE 2 t 10042 10830',
21731         'STATE 4 c 10058 10831',
21732         'STATE 1 a 10042 10124',
21733         'STATE 1 e 10058 10042',
21734         'STATE 1 a 10058 10832',
21735         'STATE 5 l 10833 10042',
21736         'STATE 1 a 10042 10058',
21737         'STATE 5 i 10093 10594',
21738         'STATE 1 n 10093 10834',
21739         'STATE 4 o 10836 10835',
21740         'STATE 5 o 10042 10837',
21741         'STATE 2 v 10838 10058',
21742         'STATE 4 e 10552 10058',
21743         'STATE 2 w 10093 10058',
21744         'STATE 1 s 10093 10839',
21745         'STATE 1 m 10058 10840',
21746         'STATE 5 d 10058 10841',
21747         'STATE 2 s 10093 10741',
21748         'STATE 2 e 10042 10842',
21749         'STATE 4 o 10091 10843',
21750         'STATE 1 g 10545 10042',
21751         'STATE 1 e 10042 10844',
21752         'STATE 5 # 10042 10845',
21753         'STATE 2 l 10042 10846',
21754         'STATE 2 i 10042 10668',
21755         'STATE 1 e 10848 10847',
21756         'STATE 1 g 10042 10849',
21757         'STATE 4 y 10042 10850',
21758         'STATE 1 m 10042 10851',
21759         'STATE 4 i 10853 10852',
21760         'STATE 1 w 10029 10042',
21761         'STATE 4 i 10855 10854',
21762         'STATE 2 v 10058 10856',
21763         'STATE 2 n 10058 10857',
21764         'STATE 1 n 10042 10058',
21765         'STATE 1 e 10042 10858',
21766         'STATE 5 e 10093 10859',
21767         'STATE 4 y 10861 10860',
21768         'STATE 2 t 10058 10862',
21769         'STATE 5 d 10058 10863',
21770         'STATE 1 o 10058 10864',
21771         'STATE 1 p 10058 10042',
21772         'STATE 2 m 10093 10865',
21773         'STATE 2 t 10058 10866',
21774         'STATE 1 a 10042 10867',
21775         'STATE 5 s 10869 10868',
21776         'STATE 2 r 10042 10870',
21777         'STATE 5 s 10042 10871',
21778         'STATE 1 t 10042 10872',
21779         'STATE 2 h 10832 10873',
21780         'STATE 2 r 10042 10658',
21781         'STATE 1 a 10042 10874',
21782         'STATE 4 a 10042 10875',
21783         'STATE 2 e 10876 10042',
21784         'STATE 1 t 10042 10877',
21785         'STATE 1 m 10042 10878',
21786         'STATE 5 t 10058 10879',
21787         'STATE 5 a 10042 10880',
21788         'STATE 5 h 10042 10881',
21789         'STATE 2 t 10058 10294',
21790         'STATE 2 m 10042 10058',
21791         'STATE 1 r 10058 10635',
21792         'STATE 2 u 10883 10882',
21793         'STATE 1 e 10042 10058',
21794         'STATE 5 u 10058 10884',
21795         'STATE 5 r 10058 10885',
21796         'STATE 5 g 10042 10058',
21797         'STATE 4 d 10042 10886',
21798         'STATE 5 c 10058 10366',
21799         'STATE 2 s 10042 10887',
21800         'STATE 4 e 10889 10888',
21801         'STATE 4 i 10890 10042',
21802         'STATE 2 u 10042 10891',
21803         'STATE 5 l 10042 10892',
21804         'STATE 2 p 10042 10893',
21805         'STATE 1 n 10058 10894',
21806         'STATE 1 i 10042 10895',
21807         'STATE 4 m 10042 10896',
21808         'STATE 4 # 10042 10897',
21809         'STATE 1 n 10042 10898',
21810         'STATE 5 e 10042 10029',
21811         'STATE 5 u 10839 10899',
21812         'STATE 5 o 10042 10900',
21813         'STATE 2 m 10058 10901',
21814         'STATE 2 y 10903 10902',
21815         'STATE 1 e 10058 10904',
21816         'STATE 1 e 10058 10905',
21817         'STATE 1 n 10042 10906',
21818         'STATE 2 v 10908 10907',
21819         'STATE 2 o 10042 10909',
21820         'STATE 4 a 10911 10910',
21821         'STATE 1 q 10042 10912',
21822         'STATE 2 t 10058 10913',
21823         'STATE 1 a 10058 10914',
21824         'STATE 2 w 10042 10915',
21825         'STATE 2 h 10058 10916',
21826         'STATE 2 i 10042 10917',
21827         'STATE 2 c 10042 10918',
21828         'STATE 4 h 10042 10919',
21829         'STATE 1 v 10042 10920',
21830         'STATE 1 p 10042 10921',
21831         'STATE 2 f 10923 10922',
21832         'STATE 1 c 10058 10924',
21833         'STATE 5 s 10042 10925',
21834         'STATE 1 a 10058 10926',
21835         'STATE 4 l 10058 10042',
21836         'STATE 4 s 10042 10927',
21837         'STATE 2 p 10058 10928',
21838         'STATE 1 o 10058 10929',
21839         'STATE 4 v 10093 10930',
21840         'STATE 4 t 10093 10931',
21841         'STATE 4 i 10042 10932',
21842         'STATE 4 i 10934 10933',
21843         'STATE 1 i 10058 10935',
21844         'STATE 2 p 10042 10936',
21845         'STATE 1 c 10042 10937',
21846         'STATE 1 i 10042 10938',
21847         'STATE 4 k 10042 10939',
21848         'STATE 1 n 10058 10042',
21849         'STATE 2 r 10042 10940',
21850         'STATE 1 n 10042 10941',
21851         'STATE 1 # 10042 10093',
21852         'STATE 4 o 10042 10942',
21853         'STATE 4 a 10944 10943',
21854         'STATE 4 f 10832 10042',
21855         'STATE 1 m 10058 10945',
21856         'STATE 5 s 10058 10946',
21857         'STATE 2 f 10042 10567',
21858         'STATE 4 m 10058 10947',
21859         'STATE 5 a 10058 10042',
21860         'STATE 1 i 10058 10121',
21861         'STATE 1 e 10058 10948',
21862         'STATE 1 s 10093 10949',
21863         'STATE 4 g 10093 10950',
21864         'STATE 2 t 10042 10412',
21865         'STATE 1 l 10951 10042',
21866         'STATE 2 t 10042 10952',
21867         'STATE 5 c 10042 10953',
21868         'STATE 1 e 10058 10954',
21869         'STATE 2 l 10042 10058',
21870         'STATE 1 c 10042 10955',
21871         'STATE 4 l 10042 10956',
21872         'STATE 2 b 10058 10957',
21873         'STATE 2 d 10058 10958',
21874         'STATE 4 y 10029 10959',
21875         'STATE 5 # 10029 10960',
21876         'STATE 1 s 10058 10961',
21877         'STATE 4 c 10042 10962',
21878         'STATE 1 g 10042 10963',
21879         'STATE 2 p 10965 10964',
21880         'STATE 1 f 10058 10121',
21881         'STATE 1 c 10093 10966',
21882         'STATE 4 s 10968 10967',
21883         'STATE 2 m 10042 10294',
21884         'STATE 2 h 10058 10969',
21885         'STATE 5 m 10058 10042',
21886         'STATE 1 c 10058 10970',
21887         'STATE 1 u 10042 10971',
21888         'STATE 5 d 10042 10972',
21889         'STATE 2 n 10973 10058',
21890         'STATE 1 h 10058 10974',
21891         'STATE 1 d 10976 10975',
21892         'STATE 4 e 10978 10977',
21893         'STATE 1 h 10029 10042',
21894         'STATE 1 n 10979 10042',
21895         'STATE 1 t 10042 10980',
21896         'STATE 5 r 10982 10981',
21897         'STATE 4 s 10983 10058',
21898         'STATE 4 n 10093 10984',
21899         'STATE 4 b 10093 10058',
21900         'STATE 1 n 10058 10093',
21901         'STATE 5 e 10985 10042',
21902         'STATE 5 l 10042 10986',
21903         'STATE 2 t 10058 10987',
21904         'STATE 5 a 10042 10988',
21905         'STATE 1 i 10058 10042',
21906         'STATE 1 k 10058 10989',
21907         'STATE 5 t 10029 10042',
21908         'STATE 4 e 10042 10029',
21909         'STATE 1 h 10029 10990',
21910         'STATE 1 h 10042 10991',
21911         'STATE 5 s 10042 10992',
21912         'STATE 2 i 10042 10993',
21913         'STATE 2 w 10327 10994',
21914         'STATE 1 n 10995 10058',
21915         'STATE 5 t 10058 10996',
21916         'STATE 1 e 10058 10744',
21917         'STATE 2 n 10042 10997',
21918         'STATE 5 k 10042 10937',
21919         'STATE 1 o 10042 10998',
21920         'STATE 2 h 10999 10042',
21921         'STATE 2 b 10042 11000',
21922         'STATE 1 m 10042 10029',
21923         'STATE 5 l 10042 10029',
21924         'STATE 4 m 10927 10058',
21925         'STATE 1 h 10042 11001',
21926         'STATE 1 c 11003 11002',
21927         'STATE 2 g 10058 10093',
21928         'STATE 1 m 10093 10777',
21929         'STATE 2 u 10042 11004',
21930         'STATE 2 d 10042 11005',
21931         'STATE 4 e 10042 10058',
21932         'STATE 2 m 10042 11006',
21933         'STATE 5 n 10937 11007',
21934         'STATE 2 t 10058 11008',
21935         'STATE 2 k 10058 10093',
21936         'STATE 2 i 10042 10937',
21937         'STATE 2 i 10042 11009',
21938         'STATE 1 e 10058 11010',
21939         'STATE 1 i 10042 11011',
21940         'STATE 2 b 10058 11012',
21941         'STATE 1 l 10042 10058',
21942         'STATE 2 v 10042 11013',
21943         'STATE 2 t 10801 11014',
21944         'STATE 5 a 11015 10058',
21945         'STATE 1 o 10058 11016',
21946         'STATE 5 c 10042 10058',
21947         'STATE 4 s 11017 10058',
21948         'STATE 2 i 10058 10042',
21949         'STATE 1 i 10093 10058',
21950         'INDEX 11018 s',
21951         'STATE 4 # 11020 11019',
21952         'STATE 4 h 11022 11021',
21953         'STATE 3 t 11024 11023',
21954         'STATE 4 s 11026 11025',
21955         'STATE 3 t 11028 11027',
21956         'STATE 3 s 11030 11029',
21957         'PHONE s',
21958         'STATE 5 h 11032 11031',
21959         'STATE 3 e 11034 11033',
21960         'STATE 1 # 11036 11035',
21961         'PHONE epsilon',
21962         'STATE 3 u 11038 11037',
21963         'STATE 1 n 11024 11039',
21964         'STATE 2 0 11041 11040',
21965         'STATE 3 t 11028 11042',
21966         'STATE 5 p 11044 11043',
21967         'STATE 6 o 11028 11045',
21968         'PHONE sh',
21969         'STATE 3 i 11046 11035',
21970         'STATE 3 i 11048 11047',
21971         'STATE 2 a 11049 11024',
21972         'STATE 2 e 11050 11024',
21973         'STATE 4 t 11052 11051',
21974         'STATE 4 z 11035 11053',
21975         'STATE 4 c 11054 11024',
21976         'STATE 1 0 11028 11055',
21977         'STATE 3 i 11024 11028',
21978         'STATE 2 n 11057 11056',
21979         'STATE 6 n 11024 11035',
21980         'STATE 2 t 11059 11058',
21981         'STATE 2 a 11028 11060',
21982         'STATE 1 h 11024 11061',
21983         'STATE 1 i 11024 11062',
21984         'STATE 3 s 11064 11063',
21985         'STATE 6 w 11065 11024',
21986         'STATE 4 j 11035 11066',
21987         'STATE 6 o 11068 11067',
21988         'STATE 1 # 11070 11069',
21989         'STATE 2 m 11028 11071',
21990         'STATE 1 # 11024 11028',
21991         'STATE 3 k 11024 11072',
21992         'STATE 3 e 11024 11073',
21993         'STATE 2 o 11028 11074',
21994         'PHONE z',
21995         'STATE 1 l 11024 11075',
21996         'STATE 4 k 11024 11076',
21997         'STATE 5 o 11078 11077',
21998         'STATE 1 # 11024 11079',
21999         'STATE 4 r 11081 11080',
22000         'STATE 6 i 11083 11082',
22001         'STATE 2 0 11035 11024',
22002         'STATE 5 o 11085 11084',
22003         'STATE 2 f 11087 11086',
22004         'STATE 1 0 11028 11088',
22005         'STATE 3 p 11024 11089',
22006         'STATE 3 h 11024 11090',
22007         'STATE 2 e 11061 11091',
22008         'STATE 1 u 11024 11092',
22009         'STATE 6 n 11094 11093',
22010         'STATE 4 u 11096 11095',
22011         'STATE 6 n 11035 11024',
22012         'STATE 2 r 11024 11061',
22013         'STATE 6 a 11024 11097',
22014         'STATE 5 i 11024 11035',
22015         'STATE 3 z 11028 11098',
22016         'STATE 1 0 11035 11024',
22017         'STATE 6 a 11100 11099',
22018         'STATE 1 s 11061 11101',
22019         'STATE 5 t 11024 11102',
22020         'STATE 3 o 11024 11103',
22021         'STATE 2 f 11028 11104',
22022         'STATE 3 c 11024 11105',
22023         'STATE 1 i 11024 11106',
22024         'STATE 2 u 11061 11107',
22025         'STATE 1 t 11028 11024',
22026         'STATE 4 z 11109 11108',
22027         'STATE 4 i 11111 11110',
22028         'STATE 2 e 11113 11112',
22029         'STATE 5 r 11035 11114',
22030         'STATE 5 r 11115 11024',
22031         'STATE 1 # 11116 11035',
22032         'STATE 6 o 11028 11117',
22033         'STATE 3 u 11028 11118',
22034         'STATE 3 u 11024 11119',
22035         'STATE 2 b 11121 11120',
22036         'STATE 3 a 11024 11028',
22037         'STATE 2 i 11028 11122',
22038         'STATE 2 k 11124 11123',
22039         'STATE 1 n 11126 11125',
22040         'STATE 1 o 11024 11127',
22041         'STATE 4 m 11129 11128',
22042         'STATE 6 o 11024 11035',
22043         'STATE 4 z 11035 11130',
22044         'STATE 5 o 11132 11131',
22045         'STATE 5 a 11134 11133',
22046         'STATE 1 m 11024 11135',
22047         'STATE 2 i 11136 11024',
22048         'STATE 4 u 11137 11024',
22049         'STATE 6 a 11024 11138',
22050         'STATE 1 w 11140 11139',
22051         'STATE 5 m 11119 11028',
22052         'STATE 2 l 11024 11028',
22053         'STATE 2 g 11103 11141',
22054         'STATE 3 u 11028 11142',
22055         'STATE 1 p 11144 11143',
22056         'STATE 3 f 11024 11145',
22057         'STATE 3 e 11024 11146',
22058         'STATE 1 o 11061 11147',
22059         'STATE 3 a 11024 11061',
22060         'STATE 2 c 11024 11148',
22061         'STATE 4 e 11150 11149',
22062         'STATE 5 # 11061 11151',
22063         'STATE 4 c 11024 11152',
22064         'STATE 5 g 11154 11153',
22065         'STATE 3 n 11035 11155',
22066         'STATE 6 v 11061 11156',
22067         'STATE 4 i 11035 11157',
22068         'STATE 1 # 11024 11158',
22069         'STATE 1 # 11035 11024',
22070         'STATE 6 e 11035 11024',
22071         'STATE 6 e 11159 11035',
22072         'STATE 3 i 11161 11160',
22073         'STATE 5 # 11028 11024',
22074         'STATE 2 d 11162 11028',
22075         'STATE 3 i 11028 11163',
22076         'STATE 1 # 11165 11164',
22077         'STATE 5 u 11028 11166',
22078         'STATE 3 a 11168 11167',
22079         'STATE 1 i 11024 11061',
22080         'STATE 1 t 11061 11169',
22081         'STATE 1 i 11171 11170',
22082         'STATE 4 u 11173 11172',
22083         'STATE 3 r 11024 11174',
22084         'STATE 5 s 11061 11175',
22085         'STATE 4 p 11024 11176',
22086         'PHONE zh',
22087         'STATE 3 e 11061 11024',
22088         'STATE 3 l 11035 11153',
22089         'STATE 6 s 11178 11177',
22090         'STATE 1 l 11028 11024',
22091         'STATE 1 d 11024 11179',
22092         'STATE 3 u 11035 11180',
22093         'STATE 1 e 11028 11181',
22094         'STATE 5 a 11182 11028',
22095         'STATE 3 i 11028 11183',
22096         'STATE 6 # 11024 11184',
22097         'STATE 1 r 11186 11185',
22098         'STATE 2 b 11028 11187',
22099         'STATE 5 l 11028 11188',
22100         'STATE 2 p 11190 11189',
22101         'STATE 2 z 11061 11191',
22102         'STATE 1 l 11061 11192',
22103         'STATE 1 a 11024 11193',
22104         'STATE 2 t 11024 11061',
22105         'STATE 4 c 11195 11194',
22106         'STATE 5 r 11197 11196',
22107         'STATE 3 n 11199 11198',
22108         'STATE 3 r 11024 11200',
22109         'STATE 3 d 11061 11201',
22110         'STATE 1 # 11024 11202',
22111         'STATE 1 p 11061 11024',
22112         'STATE 1 b 11024 11203',
22113         'STATE 2 r 11024 11204',
22114         'STATE 6 c 11028 11205',
22115         'STATE 2 r 11024 11028',
22116         'STATE 3 o 11028 11024',
22117         'STATE 5 i 11028 11103',
22118         'STATE 2 r 11207 11206',
22119         'STATE 2 g 11028 11208',
22120         'STATE 5 o 11024 11209',
22121         'STATE 6 # 11028 11210',
22122         'STATE 3 o 11212 11211',
22123         'STATE 3 o 11061 11024',
22124         'STATE 2 y 11024 11213',
22125         'STATE 1 s 11061 11214',
22126         'STATE 2 k 11061 11024',
22127         'STATE 4 i 11216 11215',
22128         'STATE 5 i 11218 11217',
22129         'STATE 6 l 11153 11219',
22130         'STATE 3 n 11221 11220',
22131         'STATE 2 o 11223 11222',
22132         'STATE 5 y 11061 11224',
22133         'STATE 5 i 11226 11225',
22134         'STATE 3 t 11024 11227',
22135         'STATE 2 i 11024 11228',
22136         'STATE 6 d 11028 11229',
22137         'STATE 3 o 11024 11035',
22138         'STATE 1 l 11028 11230',
22139         'STATE 2 h 11028 11231',
22140         'STATE 5 l 11028 11232',
22141         'STATE 5 # 11233 11024',
22142         'STATE 2 r 11028 11234',
22143         'STATE 5 e 11024 11235',
22144         'STATE 3 h 11237 11236',
22145         'STATE 2 o 11061 11238',
22146         'STATE 1 u 11061 11239',
22147         'STATE 1 a 11061 11190',
22148         'STATE 3 x 11028 11240',
22149         'STATE 5 a 11242 11241',
22150         'STATE 2 e 11243 11024',
22151         'STATE 2 o 11035 11024',
22152         'STATE 3 e 11244 11024',
22153         'STATE 6 e 11153 11245',
22154         'STATE 6 e 11035 11246',
22155         'STATE 5 # 11248 11247',
22156         'STATE 5 r 11250 11249',
22157         'STATE 1 e 11061 11024',
22158         'STATE 6 l 11061 11251',
22159         'STATE 6 c 11061 11024',
22160         'STATE 3 w 11061 11252',
22161         'STATE 1 c 11024 11253',
22162         'STATE 1 f 11024 11254',
22163         'STATE 1 t 11028 11255',
22164         'STATE 1 l 11024 11256',
22165         'STATE 6 r 11028 11257',
22166         'STATE 2 l 11028 11024',
22167         'STATE 2 h 11024 11258',
22168         'STATE 6 n 11260 11259',
22169         'STATE 3 e 11261 11061',
22170         'STATE 2 c 11024 11262',
22171         'STATE 1 u 11264 11263',
22172         'STATE 2 l 11266 11265',
22173         'STATE 4 p 11268 11267',
22174         'STATE 2 p 11270 11269',
22175         'STATE 6 # 11272 11271',
22176         'STATE 5 o 11024 11061',
22177         'STATE 5 m 11061 11273',
22178         'STATE 2 e 11153 11024',
22179         'STATE 6 g 11024 11274',
22180         'STATE 5 d 11276 11275',
22181         'STATE 3 p 11024 11277',
22182         'STATE 3 i 11061 11278',
22183         'STATE 1 # 11061 11279',
22184         'STATE 2 c 11061 11280',
22185         'STATE 1 0 11282 11281',
22186         'STATE 4 o 11284 11283',
22187         'STATE 1 h 11028 11285',
22188         'STATE 6 i 11287 11286',
22189         'STATE 1 b 11028 11288',
22190         'STATE 6 v 11028 11289',
22191         'STATE 2 l 11291 11290',
22192         'STATE 2 r 11140 11024',
22193         'STATE 5 i 11024 11028',
22194         'STATE 1 q 11024 11292',
22195         'STATE 1 i 11061 11293',
22196         'STATE 2 l 11061 11294',
22197         'STATE 2 l 11024 11061',
22198         'STATE 2 c 11024 11295',
22199         'STATE 1 l 11061 11296',
22200         'STATE 4 o 11298 11297',
22201         'STATE 3 w 11061 11024',
22202         'STATE 3 u 11300 11299',
22203         'STATE 6 i 11061 11301',
22204         'STATE 6 k 11024 11302',
22205         'STATE 2 n 11153 11303',
22206         'STATE 5 l 11061 11024',
22207         'STATE 2 i 11035 11024',
22208         'STATE 5 r 11305 11304',
22209         'STATE 3 a 11024 11306',
22210         'STATE 3 a 11308 11307',
22211         'STATE 5 d 11061 11024',
22212         'STATE 1 r 11061 11309',
22213         'STATE 3 d 11061 11310',
22214         'STATE 3 r 11024 11311',
22215         'STATE 3 i 11028 11312',
22216         'STATE 1 g 11314 11313',
22217         'STATE 1 l 11028 11315',
22218         'STATE 1 i 11024 11316',
22219         'STATE 5 u 11028 11317',
22220         'STATE 5 f 11024 11028',
22221         'STATE 1 o 11028 11318',
22222         'STATE 1 b 11028 11319',
22223         'STATE 2 w 11024 11320',
22224         'STATE 6 n 11028 11024',
22225         'STATE 2 f 11024 11321',
22226         'STATE 2 a 11061 11322',
22227         'STATE 2 g 11061 11323',
22228         'STATE 1 a 11061 11324',
22229         'STATE 1 a 11061 11024',
22230         'STATE 3 g 11326 11325',
22231         'STATE 5 r 11328 11327',
22232         'STATE 3 i 11330 11329',
22233         'STATE 5 v 11024 11331',
22234         'STATE 1 e 11061 11332',
22235         'STATE 1 t 11061 11333',
22236         'STATE 3 o 11024 11334',
22237         'STATE 2 r 11336 11335',
22238         'STATE 2 e 11338 11337',
22239         'STATE 3 p 11024 11339',
22240         'STATE 3 l 11024 11340',
22241         'STATE 2 r 11061 11341',
22242         'STATE 3 u 11024 11061',
22243         'STATE 6 s 11061 11342',
22244         'STATE 2 u 11024 11343',
22245         'STATE 4 m 11061 11024',
22246         'STATE 5 i 11345 11344',
22247         'STATE 2 a 11028 11024',
22248         'STATE 1 h 11024 11346',
22249         'STATE 1 c 11348 11347',
22250         'STATE 2 c 11028 11349',
22251         'STATE 2 l 11028 11350',
22252         'STATE 5 e 11352 11351',
22253         'STATE 6 l 11028 11353',
22254         'STATE 1 e 11264 11061',
22255         'STATE 2 g 11061 11024',
22256         'STATE 2 d 11061 11354',
22257         'STATE 2 e 11356 11355',
22258         'STATE 5 e 11358 11357',
22259         'STATE 4 b 11061 11359',
22260         'STATE 3 a 11361 11360',
22261         'STATE 2 v 11061 11362',
22262         'STATE 3 e 11364 11363',
22263         'STATE 5 t 11061 11365',
22264         'STATE 5 # 11024 11366',
22265         'STATE 6 e 11061 11367',
22266         'STATE 3 a 11024 11035',
22267         'STATE 3 a 11153 11024',
22268         'STATE 3 i 11369 11368',
22269         'STATE 5 n 11371 11370',
22270         'STATE 3 i 11061 11372',
22271         'STATE 3 y 11061 11373',
22272         'STATE 1 o 11024 11061',
22273         'STATE 2 w 11061 11374',
22274         'STATE 2 b 11024 11375',
22275         'STATE 1 u 11024 11376',
22276         'STATE 4 o 11024 11377',
22277         'STATE 1 f 11379 11378',
22278         'STATE 2 o 11028 11024',
22279         'STATE 2 u 11140 11024',
22280         'STATE 1 v 11024 11380',
22281         'STATE 5 r 11381 11024',
22282         'STATE 6 f 11028 11382',
22283         'STATE 5 i 11028 11383',
22284         'STATE 1 d 11024 11384',
22285         'STATE 1 d 11028 11385',
22286         'STATE 2 j 11024 11386',
22287         'STATE 1 a 11388 11387',
22288         'STATE 1 r 11390 11389',
22289         'STATE 1 n 11024 11061',
22290         'STATE 2 d 11392 11391',
22291         'STATE 6 # 11394 11393',
22292         'STATE 1 i 11061 11395',
22293         'STATE 1 # 11397 11396',
22294         'STATE 2 e 11398 11024',
22295         'STATE 3 b 11061 11399',
22296         'STATE 2 h 11401 11400',
22297         'STATE 2 r 11403 11402',
22298         'STATE 2 d 11024 11404',
22299         'STATE 6 e 11061 11405',
22300         'STATE 6 g 11061 11406',
22301         'STATE 3 u 11408 11407',
22302         'STATE 2 w 11061 11409',
22303         'STATE 1 # 11411 11410',
22304         'STATE 6 t 11061 11412',
22305         'STATE 2 i 11024 11413',
22306         'STATE 3 l 11024 11414',
22307         'STATE 2 h 11061 11415',
22308         'STATE 1 c 11024 11416',
22309         'STATE 6 t 11418 11417',
22310         'STATE 3 i 11024 11419',
22311         'STATE 1 b 11421 11420',
22312         'STATE 2 u 11024 11422',
22313         'STATE 4 y 11024 11423',
22314         'STATE 6 # 11024 11424',
22315         'STATE 2 l 11426 11425',
22316         'STATE 2 u 11028 11427',
22317         'STATE 5 # 11028 11428',
22318         'STATE 6 s 11024 11028',
22319         'STATE 5 e 11028 11429',
22320         'STATE 2 m 11061 11430',
22321         'STATE 2 r 11061 11395',
22322         'STATE 2 r 11432 11431',
22323         'STATE 2 g 11024 11061',
22324         'STATE 4 l 11434 11433',
22325         'STATE 4 r 11435 11024',
22326         'STATE 1 0 11437 11436',
22327         'STATE 3 i 11028 11438',
22328         'STATE 2 n 11061 11024',
22329         'STATE 3 i 11178 11439',
22330         'STATE 2 r 11441 11440',
22331         'STATE 6 # 11442 11061',
22332         'STATE 2 r 11061 11024',
22333         'STATE 5 e 11024 11443',
22334         'STATE 3 y 11061 11024',
22335         'STATE 6 a 11061 11444',
22336         'STATE 1 # 11061 11445',
22337         'STATE 2 v 11061 11446',
22338         'STATE 6 g 11448 11447',
22339         'STATE 5 t 11061 11024',
22340         'STATE 3 o 11450 11449',
22341         'STATE 2 a 11061 11451',
22342         'STATE 1 r 11061 11452',
22343         'STATE 5 s 11453 11024',
22344         'STATE 3 o 11061 11454',
22345         'STATE 3 o 11061 11455',
22346         'STATE 3 e 11061 11456',
22347         'STATE 1 h 11061 11024',
22348         'STATE 1 b 11061 11457',
22349         'STATE 1 r 11024 11458',
22350         'STATE 6 y 11024 11459',
22351         'STATE 5 a 11024 11061',
22352         'STATE 3 k 11024 11460',
22353         'STATE 1 l 11462 11461',
22354         'STATE 2 u 11024 11463',
22355         'STATE 4 i 11024 11028',
22356         'STATE 1 j 11465 11464',
22357         'STATE 6 i 11028 11024',
22358         'STATE 1 g 11028 11466',
22359         'STATE 6 s 11028 11467',
22360         'STATE 2 c 11028 11468',
22361         'STATE 5 i 11028 11024',
22362         'STATE 2 t 11024 11028',
22363         'STATE 1 l 11024 11469',
22364         'STATE 1 t 11061 11470',
22365         'STATE 1 t 11061 11224',
22366         'STATE 3 p 11024 11471',
22367         'STATE 2 o 11024 11472',
22368         'STATE 3 e 11028 11024',
22369         'STATE 3 u 11024 11473',
22370         'STATE 3 i 11028 11024',
22371         'STATE 4 n 11028 11024',
22372         'STATE 3 y 11474 11024',
22373         'STATE 2 m 11061 11024',
22374         'STATE 6 a 11061 11273',
22375         'STATE 1 r 11024 11061',
22376         'STATE 6 g 11190 11475',
22377         'STATE 5 r 11061 11024',
22378         'STATE 6 e 11061 11024',
22379         'STATE 1 p 11061 11476',
22380         'STATE 5 b 11061 11477',
22381         'STATE 1 # 11024 11061',
22382         'STATE 3 e 11479 11478',
22383         'STATE 6 # 11481 11480',
22384         'STATE 2 m 11061 11482',
22385         'STATE 2 h 11061 11483',
22386         'STATE 3 i 11061 11024',
22387         'STATE 5 m 11061 11024',
22388         'STATE 6 d 11024 11154',
22389         'STATE 1 h 11061 11484',
22390         'STATE 2 e 11486 11485',
22391         'STATE 2 c 11024 11487',
22392         'STATE 5 a 11489 11488',
22393         'STATE 2 r 11491 11490',
22394         'STATE 5 e 11024 11492',
22395         'STATE 5 f 11024 11493',
22396         'STATE 5 # 11028 11494',
22397         'STATE 4 l 11496 11495',
22398         'STATE 6 # 11028 11024',
22399         'STATE 1 o 11028 11497',
22400         'STATE 5 b 11028 11498',
22401         'STATE 2 s 11028 11499',
22402         'STATE 2 n 11501 11500',
22403         'STATE 1 m 11061 11502',
22404         'STATE 4 q 11024 11503',
22405         'STATE 1 r 11061 11024',
22406         'STATE 6 y 11505 11504',
22407         'STATE 2 a 11061 11024',
22408         'STATE 3 a 11507 11506',
22409         'STATE 2 a 11061 11508',
22410         'STATE 5 c 11061 11024',
22411         'STATE 5 y 11510 11509',
22412         'STATE 1 h 11061 11511',
22413         'STATE 2 j 11024 11512',
22414         'STATE 2 p 11061 11513',
22415         'STATE 2 f 11061 11024',
22416         'STATE 6 h 11061 11514',
22417         'STATE 6 # 11516 11515',
22418         'STATE 1 i 11024 11517',
22419         'STATE 3 e 11442 11024',
22420         'STATE 1 l 11024 11061',
22421         'STATE 2 d 11024 11518',
22422         'STATE 2 a 11024 11519',
22423         'STATE 2 c 11024 11520',
22424         'STATE 1 # 11061 11024',
22425         'STATE 6 a 11024 11521',
22426         'STATE 5 s 11024 11522',
22427         'STATE 5 d 11024 11523',
22428         'STATE 1 r 11525 11524',
22429         'STATE 1 r 11024 11526',
22430         'STATE 5 a 11028 11527',
22431         'STATE 3 a 11528 11028',
22432         'STATE 2 t 11028 11024',
22433         'STATE 1 d 11079 11529',
22434         'STATE 1 i 11061 11024',
22435         'STATE 1 p 11024 11530',
22436         'STATE 4 a 11532 11531',
22437         'STATE 3 i 11024 11533',
22438         'STATE 3 i 11061 11507',
22439         'STATE 1 r 11474 11534',
22440         'STATE 2 e 11061 11024',
22441         'STATE 5 # 11024 11535',
22442         'STATE 3 a 11536 11024',
22443         'STATE 3 t 11024 11537',
22444         'STATE 5 t 11024 11538',
22445         'STATE 6 u 11024 11539',
22446         'STATE 2 l 11061 11491',
22447         'STATE 5 s 11061 11540',
22448         'STATE 3 a 11024 11541',
22449         'STATE 1 # 11061 11542',
22450         'STATE 2 t 11024 11543',
22451         'STATE 5 e 11154 11024',
22452         'STATE 3 i 11061 11544',
22453         'STATE 3 o 11024 11545',
22454         'STATE 6 g 11024 11546',
22455         'STATE 2 a 11547 11024',
22456         'STATE 4 i 11024 11314',
22457         'STATE 5 a 11024 11548',
22458         'STATE 6 g 11028 11549',
22459         'STATE 6 r 11028 11024',
22460         'STATE 2 a 11028 11550',
22461         'STATE 1 c 11028 11551',
22462         'STATE 1 n 11024 11552',
22463         'STATE 1 e 11061 11553',
22464         'STATE 3 t 11024 11554',
22465         'STATE 3 r 11024 11555',
22466         'STATE 2 e 11557 11556',
22467         'STATE 2 r 11491 11024',
22468         'STATE 2 o 11061 11558',
22469         'STATE 2 e 11273 11024',
22470         'STATE 1 # 11024 11559',
22471         'STATE 1 g 11024 11560',
22472         'STATE 1 # 11273 11024',
22473         'STATE 6 # 11024 11561',
22474         'STATE 6 s 11061 11024',
22475         'STATE 2 r 11061 11562',
22476         'STATE 2 c 11564 11563',
22477         'STATE 6 r 11024 11061',
22478         'STATE 1 k 11061 11565',
22479         'STATE 1 o 11024 11566',
22480         'STATE 5 c 11028 11024',
22481         'STATE 4 o 11028 11567',
22482         'STATE 4 m 11028 11568',
22483         'STATE 2 t 11028 11569',
22484         'STATE 5 # 11028 11570',
22485         'STATE 2 h 11024 11061',
22486         'STATE 1 i 11061 11571',
22487         'STATE 3 i 11573 11572',
22488         'STATE 5 n 11575 11574',
22489         'STATE 3 d 11061 11576',
22490         'STATE 1 r 11024 11577',
22491         'STATE 2 u 11061 11578',
22492         'STATE 3 l 11024 11061',
22493         'STATE 2 h 11024 11579',
22494         'STATE 1 w 11024 11580',
22495         'STATE 1 s 11024 11581',
22496         'STATE 1 e 11583 11582',
22497         'STATE 3 u 11061 11024',
22498         'STATE 1 l 11061 11584',
22499         'STATE 1 w 11024 11585',
22500         'STATE 5 n 11024 11586',
22501         'STATE 5 r 11024 11587',
22502         'STATE 6 m 11028 11588',
22503         'STATE 1 g 11024 11028',
22504         'STATE 2 d 11061 11589',
22505         'STATE 3 w 11061 11590',
22506         'STATE 4 r 11061 11024',
22507         'STATE 2 v 11061 11591',
22508         'STATE 2 e 11061 11592',
22509         'STATE 3 a 11024 11593',
22510         'STATE 4 b 11061 11594',
22511         'STATE 6 e 11024 11595',
22512         'STATE 6 s 11061 11596',
22513         'STATE 2 e 11597 11024',
22514         'STATE 3 u 11024 11474',
22515         'STATE 1 a 11154 11598',
22516         'STATE 2 r 11061 11453',
22517         'STATE 1 i 11061 11599',
22518         'STATE 6 l 11600 11024',
22519         'STATE 5 s 11024 11601',
22520         'STATE 6 t 11024 11602',
22521         'STATE 1 r 11604 11603',
22522         'STATE 2 s 11024 11061',
22523         'STATE 5 s 11024 11605',
22524         'STATE 5 l 11607 11606',
22525         'STATE 6 # 11061 11541',
22526         'STATE 1 c 11024 11608',
22527         'STATE 1 n 11061 11609',
22528         'STATE 2 r 11061 11610',
22529         'STATE 5 n 11611 11024',
22530         'STATE 5 n 11061 11024',
22531         'STATE 3 i 11061 11612',
22532         'STATE 2 l 11061 11613',
22533         'STATE 4 a 11028 11024',
22534         'STATE 1 n 11615 11614',
22535         'STATE 5 v 11024 11616',
22536         'STATE 6 e 11028 11617',
22537         'STATE 2 e 11028 11182',
22538         'STATE 3 k 11024 11618',
22539         'STATE 3 a 11024 11619',
22540         'STATE 6 e 11024 11620',
22541         'STATE 6 l 11622 11621',
22542         'STATE 3 n 11024 11061',
22543         'STATE 1 # 11024 11623',
22544         'STATE 6 # 11061 11024',
22545         'STATE 1 r 11625 11624',
22546         'STATE 3 a 11312 11626',
22547         'STATE 6 # 11628 11627',
22548         'STATE 5 e 11024 11028',
22549         'STATE 5 # 11024 11629',
22550         'STATE 6 s 11028 11630',
22551         'STATE 3 a 11507 11631',
22552         'STATE 2 e 11024 11632',
22553         'STATE 3 o 11061 11633',
22554         'STATE 4 f 11024 11634',
22555         'STATE 4 n 11024 11061',
22556         'STATE 2 e 11024 11339',
22557         'STATE 2 p 11061 11635',
22558         'STATE 2 i 11061 11024',
22559         'STATE 2 t 11024 11636',
22560         'STATE 6 r 11024 11637',
22561         'STATE 5 d 11024 11028',
22562         'STATE 4 e 11638 11028',
22563         'STATE 2 m 11028 11639',
22564         'STATE 4 f 11024 11640',
22565         'STATE 6 l 11061 11641',
22566         'STATE 1 # 11024 11609',
22567         'STATE 2 o 11024 11642',
22568         'STATE 1 # 11061 11643',
22569         'STATE 4 b 11061 11644',
22570         'STATE 4 e 11024 11645',
22571         'STATE 5 s 11028 11646',
22572         'STATE 6 d 11028 11647',
22573         'STATE 4 n 11024 11648',
22574         'STATE 6 c 11190 11649',
22575         'STATE 2 c 11024 11650',
22576         'STATE 1 l 11061 11651',
22577         'STATE 2 i 11061 11652',
22578         'STATE 1 s 11024 11653',
22579         'STATE 5 d 11028 11024',
22580         'STATE 6 # 11028 11654',
22581         'STATE 2 l 11061 11655',
22582         'STATE 6 i 11564 11656',
22583         'STATE 4 w 11024 11657',
22584         'STATE 2 i 11024 11061',
22585         'STATE 1 h 11024 11658',
22586         'STATE 1 l 11024 11028',
22587         'STATE 1 a 11028 11659',
22588         'STATE 1 f 11024 11660',
22589         'STATE 5 b 11448 11661',
22590         'STATE 1 g 11024 11662',
22591         'STATE 2 e 11024 11663',
22592         'STATE 1 b 11028 11664',
22593         'STATE 1 c 11061 11665',
22594         'STATE 6 e 11024 11666',
22595         'STATE 4 l 11024 11667',
22596         'STATE 4 m 11024 11564',
22597         'STATE 1 m 11028 11668',
22598         'STATE 3 u 11024 11669',
22599         'STATE 2 a 11671 11670',
22600         'STATE 6 r 11672 11061',
22601         'STATE 1 s 11028 11673',
22602         'STATE 3 o 11675 11674',
22603         'STATE 6 s 11024 11676',
22604         'STATE 5 # 11024 11472',
22605         'STATE 2 a 11024 11677',
22606         'STATE 3 a 11140 11028',
22607         'STATE 4 d 11679 11678',
22608         'STATE 5 # 11061 11024',
22609         'STATE 3 u 11680 11534',
22610         'STATE 1 # 11024 11681',
22611         'STATE 3 e 11395 11682',
22612         'STATE 1 d 11061 11683',
22613         'STATE 6 # 11024 11684',
22614         'STATE 3 n 11061 11024',
22615         'STATE 1 h 11024 11685',
22616         'STATE 2 u 11061 11686',
22617         'STATE 5 # 11024 11061',
22618         'STATE 5 r 11061 11687',
22619         'STATE 2 a 11024 11061',
22620         'STATE 3 m 11061 11688',
22621         'STATE 3 r 11024 11689',
22622         'STATE 6 c 11061 11690',
22623         'STATE 2 u 11024 11691',
22624         'STATE 4 v 11061 11692',
22625         'STATE 6 r 11693 11474',
22626         'STATE 2 e 11061 11694',
22627         'STATE 4 b 11061 11686',
22628         'INDEX 11695 t',
22629         'STATE 4 h 11697 11696',
22630         'STATE 5 o 11699 11698',
22631         'STATE 5 e 11701 11700',
22632         'STATE 4 t 11703 11702',
22633         'STATE 4 i 11705 11704',
22634         'STATE 5 # 11707 11706',
22635         'STATE 6 r 11709 11708',
22636         'STATE 4 c 11711 11710',
22637         'STATE 3 e 11713 11712',
22638         'STATE 4 t 11715 11714',
22639         'STATE 3 s 11717 11716',
22640         'STATE 3 s 11719 11718',
22641         'PHONE th',
22642         'STATE 6 # 11721 11720',
22643         'STATE 3 # 11707 11722',
22644         'STATE 4 u 11724 11723',
22645         'STATE 5 h 11726 11725',
22646         'STATE 5 s 11728 11727',
22647         'STATE 5 s 11726 11729',
22648         'STATE 4 u 11731 11730',
22649         'STATE 3 e 11726 11732',
22650         'STATE 3 n 11734 11733',
22651         'PHONE ch',
22652         'STATE 5 o 11736 11735',
22653         'STATE 6 a 11707 11725',
22654         'STATE 6 a 11738 11737',
22655         'STATE 3 n 11707 11739',
22656         'STATE 3 a 11739 11721',
22657         'STATE 3 t 11741 11740',
22658         'STATE 3 # 11725 11742',
22659         'PHONE t',
22660         'PHONE epsilon',
22661         'STATE 6 d 11726 11743',
22662         'STATE 6 # 11745 11744',
22663         'STATE 5 l 11746 11726',
22664         'STATE 3 t 11748 11747',
22665         'STATE 6 u 11717 11725',
22666         'STATE 6 m 11726 11749',
22667         'STATE 6 n 11734 11750',
22668         'PHONE sh',
22669         'STATE 6 # 11752 11751',
22670         'STATE 6 r 11707 11753',
22671         'STATE 6 d 11755 11754',
22672         'STATE 3 # 11707 11756',
22673         'PHONE dh',
22674         'STATE 5 a 11758 11757',
22675         'STATE 4 s 11726 11759',
22676         'STATE 5 r 11761 11760',
22677         'STATE 5 r 11726 11762',
22678         'STATE 3 i 11725 11726',
22679         'STATE 3 o 11725 11763',
22680         'STATE 6 e 11726 11725',
22681         'STATE 4 a 11764 11725',
22682         'STATE 4 r 11725 11765',
22683         'STATE 6 # 11767 11766',
22684         'STATE 6 u 11734 11768',
22685         'STATE 5 a 11770 11769',
22686         'STATE 3 r 11772 11771',
22687         'STATE 3 l 11725 11773',
22688         'STATE 6 i 11707 11774',
22689         'STATE 3 a 11739 11707',
22690         'STATE 3 r 11707 11725',
22691         'STATE 6 h 11776 11775',
22692         'STATE 4 i 11778 11777',
22693         'STATE 6 0 11725 11779',
22694         'STATE 5 a 11717 11780',
22695         'STATE 6 e 11717 11781',
22696         'STATE 6 s 11726 11782',
22697         'STATE 3 a 11726 11725',
22698         'PHONE d',
22699         'STATE 4 o 11725 11726',
22700         'STATE 3 o 11784 11783',
22701         'STATE 3 o 11725 11726',
22702         'STATE 3 a 11734 11725',
22703         'STATE 6 n 11786 11785',
22704         'STATE 6 i 11725 11707',
22705         'STATE 5 y 11707 11787',
22706         'STATE 5 y 11739 11707',
22707         'STATE 3 o 11725 11788',
22708         'STATE 6 y 11739 11789',
22709         'STATE 4 l 11791 11790',
22710         'STATE 4 s 11726 11725',
22711         'STATE 4 g 11793 11792',
22712         'STATE 3 s 11795 11794',
22713         'STATE 5 d 11725 11796',
22714         'STATE 6 a 11798 11797',
22715         'STATE 6 a 11717 11799',
22716         'STATE 6 n 11726 11800',
22717         'STATE 3 u 11725 11801',
22718         'STATE 6 n 11726 11725',
22719         'STATE 6 l 11803 11802',
22720         'STATE 3 r 11739 11755',
22721         'STATE 5 s 11707 11804',
22722         'STATE 6 d 11707 11805',
22723         'STATE 6 s 11807 11806',
22724         'STATE 5 h 11809 11808',
22725         'STATE 3 s 11810 11725',
22726         'STATE 4 r 11725 11811',
22727         'STATE 3 r 11726 11725',
22728         'STATE 3 n 11813 11812',
22729         'STATE 6 # 11725 11717',
22730         'STATE 4 r 11725 11814',
22731         'STATE 5 e 11717 11815',
22732         'STATE 5 l 11717 11816',
22733         'STATE 6 i 11817 11725',
22734         'STATE 5 # 11726 11818',
22735         'STATE 6 n 11725 11819',
22736         'STATE 3 y 11821 11820',
22737         'STATE 5 i 11725 11707',
22738         'STATE 3 n 11707 11822',
22739         'STATE 6 l 11707 11823',
22740         'STATE 3 # 11707 11824',
22741         'STATE 3 o 11739 11755',
22742         'STATE 4 # 11725 11825',
22743         'STATE 4 s 11826 11725',
22744         'STATE 5 e 11726 11725',
22745         'STATE 3 # 11827 11725',
22746         'STATE 3 # 11725 11734',
22747         'STATE 6 l 11717 11828',
22748         'STATE 5 a 11725 11829',
22749         'STATE 3 s 11725 11830',
22750         'STATE 3 r 11717 11725',
22751         'STATE 3 n 11725 11717',
22752         'STATE 6 a 11726 11831',
22753         'STATE 3 a 11832 11726',
22754         'STATE 6 s 11833 11707',
22755         'STATE 5 m 11739 11707',
22756         'STATE 5 a 11707 11739',
22757         'STATE 6 n 11707 11834',
22758         'STATE 3 o 11835 11707',
22759         'STATE 5 n 11837 11836',
22760         'STATE 6 a 11717 11838',
22761         'STATE 4 e 11725 11839',
22762         'STATE 6 t 11734 11840',
22763         'STATE 6 t 11725 11841',
22764         'STATE 6 # 11725 11842',
22765         'STATE 3 a 11844 11843',
22766         'STATE 6 o 11726 11725',
22767         'STATE 3 # 11739 11707',
22768         'STATE 6 g 11707 11845',
22769         'STATE 6 n 11739 11707',
22770         'STATE 6 n 11847 11846',
22771         'STATE 4 e 11848 11725',
22772         'STATE 6 o 11725 11717',
22773         'STATE 4 o 11725 11849',
22774         'STATE 6 # 11734 11725',
22775         'STATE 4 o 11851 11850',
22776         'STATE 3 i 11725 11852',
22777         'STATE 6 # 11726 11853',
22778         'STATE 5 n 11725 11854',
22779         'STATE 3 # 11707 11855',
22780         'STATE 3 d 11857 11856',
22781         'STATE 4 i 11858 11725',
22782         'STATE 3 s 11860 11859',
22783         'STATE 4 w 11725 11861',
22784         'STATE 5 s 11725 11862',
22785         'STATE 5 m 11725 11863',
22786         'STATE 6 e 11864 11725',
22787         'STATE 5 k 11726 11865',
22788         'STATE 5 y 11726 11866',
22789         'STATE 6 u 11725 11867',
22790         'STATE 5 u 11868 11725',
22791         'STATE 4 k 11726 11725',
22792         'STATE 5 e 11768 11725',
22793         'STATE 3 f 11726 11725',
22794         'STATE 6 i 11726 11746',
22795         'STATE 4 s 11725 11726',
22796         'STATE 5 n 11725 11869',
22797         'STATE 5 n 11870 11726',
22798         'STATE 3 r 11717 11871',
22799         'STATE 6 i 11726 11872',
22800         'STATE 6 t 11725 11726',
22801         'STATE 3 a 11707 11873',
22802         'STATE 4 e 11874 11725',
22803         'STATE 5 w 11726 11875',
22804         'STATE 6 # 11726 11725',
22805         'STATE 3 a 11717 11725',
22806         'STATE 3 r 11725 11876',
22807         'STATE 3 r 11707 11877',
22808         'STATE 6 r 11878 11725',
22809         'STATE 5 g 11725 11879',
22810         'STATE 6 k 11725 11880',
22811         'STATE 3 e 11707 11725',
22812         'STATE 3 s 11717 11725',
22813         'STATE 6 k 11725 11881',
22814         'STATE 3 u 11883 11882',
22815         'STATE 5 m 11725 11884',
22816         'STATE 6 g 11726 11885',
22817         'STATE 6 e 11726 11810',
22818         'STATE 6 f 11725 11886',
22819         'STATE 5 i 11746 11887',
22820         'STATE 6 n 11725 11888',
22821         'STATE 6 m 11726 11889',
22822         'STATE 6 d 11726 11890',
22823         'STATE 5 a 11744 11891',
22824         'STATE 6 o 11726 11892',
22825         'STATE 5 l 11767 11893',
22826         'STATE 6 e 11895 11894',
22827         'STATE 5 e 11896 11726',
22828         'STATE 6 l 11898 11897',
22829         'STATE 5 r 11726 11725',
22830         'STATE 6 r 11726 11899',
22831         'STATE 6 y 11726 11900',
22832         'STATE 4 e 11726 11725',
22833         'STATE 6 l 11726 11725',
22834         'STATE 4 n 11725 11901',
22835         'STATE 6 a 11898 11902',
22836         'STATE 4 l 11904 11903',
22837         'STATE 6 b 11726 11905',
22838         'STATE 6 s 11726 11725',
22839         'STATE 5 l 11907 11906',
22840         'STATE 6 s 11909 11908',
22841         'STATE 6 # 11910 11904',
22842         'STATE 4 k 11725 11911',
22843         'STATE 4 e 11725 11726',
22844         'STATE 4 a 11725 11726',
22845         'STATE 6 i 11725 11912',
22846         'STATE 6 m 11725 11913',
22847         'STATE 6 # 11725 11914',
22848         'STATE 4 i 11725 11915',
22849         'STATE 6 r 11726 11725',
22850         'INDEX 11916 u',
22851         'STATE 4 r 11918 11917',
22852         'STATE 3 a 11920 11919',
22853         'STATE 5 y 11922 11921',
22854         'STATE 3 o 11924 11923',
22855         'PHONE epsilon',
22856         'STATE 5 i 11926 11925',
22857         'STATE 3 b 11927 11920',
22858         'STATE 3 q 11929 11928',
22859         'STATE 4 p 11931 11930',
22860         'STATE 5 o 11933 11932',
22861         'STATE 3 # 11935 11934',
22862         'PHONE eh1',
22863         'STATE 5 # 11937 11936',
22864         'STATE 4 e 11939 11938',
22865         'STATE 4 i 11941 11940',
22866         'STATE 5 l 11943 11942',
22867         'STATE 5 a 11945 11944',
22868         'STATE 3 e 11947 11946',
22869         'STATE 3 p 11949 11948',
22870         'STATE 6 n 11951 11950',
22871         'STATE 5 e 11953 11952',
22872         'STATE 4 e 11955 11954',
22873         'STATE 5 a 11957 11956',
22874         'STATE 5 # 11920 11958',
22875         'STATE 4 s 11960 11959',
22876         'STATE 5 s 11961 11957',
22877         'PHONE uw1',
22878         'PHONE ah1',
22879         'STATE 5 e 11963 11962',
22880         'STATE 6 # 11965 11964',
22881         'STATE 3 a 11920 11966',
22882         'STATE 6 p 11949 11967',
22883         'STATE 3 c 11949 11968',
22884         'PHONE y-uh1',
22885         'PHONE y-er',
22886         'PHONE y-er1',
22887         'STATE 5 i 11970 11969',
22888         'STATE 4 s 11972 11971',
22889         'STATE 4 a 11974 11973',
22890         'STATE 3 g 11920 11975',
22891         'STATE 6 # 11977 11976',
22892         'PHONE w',
22893         'STATE 6 # 11979 11978',
22894         'STATE 4 n 11981 11980',
22895         'STATE 5 s 11942 11982',
22896         'PHONE uw',
22897         'STATE 5 r 11984 11983',
22898         'STATE 3 t 11920 11985',
22899         'STATE 3 t 11920 11986',
22900         'PHONE uh1',
22901         'STATE 6 # 11965 11987',
22902         'STATE 6 l 11989 11988',
22903         'STATE 3 f 11949 11990',
22904         'STATE 5 a 11992 11991',
22905         'STATE 3 # 11994 11993',
22906         'STATE 3 # 11996 11995',
22907         'STATE 6 s 11998 11997',
22908         'STATE 4 s 12000 11999',
22909         'STATE 3 g 11957 12001',
22910         'STATE 3 r 11942 12002',
22911         'STATE 4 a 11957 12003',
22912         'STATE 5 l 11957 12004',
22913         'STATE 5 t 11920 12005',
22914         'STATE 5 z 11957 11920',
22915         'STATE 4 t 12007 12006',
22916         'STATE 5 g 12009 12008',
22917         'STATE 5 # 11920 12010',
22918         'STATE 5 u 12011 11920',
22919         'STATE 3 d 12012 11920',
22920         'STATE 3 s 12014 12013',
22921         'STATE 3 c 12016 12015',
22922         'STATE 6 n 11942 11920',
22923         'STATE 6 s 11965 12017',
22924         'PHONE uh',
22925         'STATE 3 b 11927 12018',
22926         'STATE 4 e 12020 12019',
22927         'STATE 4 l 12022 12021',
22928         'STATE 3 m 12024 12023',
22929         'STATE 6 n 11943 12025',
22930         'STATE 3 r 12027 12026',
22931         'STATE 4 n 12029 12028',
22932         'STATE 3 e 12031 12030',
22933         'STATE 3 r 12000 12032',
22934         'STATE 4 m 12000 12033',
22935         'PHONE ax',
22936         'STATE 3 h 11961 11942',
22937         'STATE 3 s 11961 12034',
22938         'STATE 4 i 11957 12035',
22939         'STATE 5 d 11957 12036',
22940         'STATE 5 u 11920 12037',
22941         'STATE 5 h 12039 12038',
22942         'STATE 6 e 12041 12040',
22943         'STATE 6 r 11943 11920',
22944         'STATE 6 e 11920 11943',
22945         'STATE 5 t 12042 11920',
22946         'STATE 3 a 11920 11965',
22947         'PHONE ao1',
22948         'STATE 3 a 11920 12043',
22949         'STATE 6 # 11920 12044',
22950         'STATE 3 g 11950 12045',
22951         'STATE 6 t 11949 11950',
22952         'PHONE y-uw1',
22953         'STATE 3 g 11949 12046',
22954         'STATE 4 a 12048 12047',
22955         'STATE 3 g 11920 12049',
22956         'STATE 3 # 12051 12050',
22957         'STATE 6 t 12053 12052',
22958         'STATE 3 c 12055 12054',
22959         'STATE 4 n 12057 12056',
22960         'STATE 6 m 11943 12058',
22961         'STATE 3 s 12060 12059',
22962         'STATE 4 m 12062 12061',
22963         'STATE 4 t 12017 12000',
22964         'STATE 6 a 12000 12063',
22965         'STATE 3 m 12017 12064',
22966         'STATE 6 r 11920 12017',
22967         'STATE 3 b 11943 12000',
22968         'STATE 3 f 12000 12065',
22969         'STATE 3 d 11942 12066',
22970         'STATE 4 o 11957 11942',
22971         'STATE 5 t 11957 12067',
22972         'STATE 5 r 11920 12068',
22973         'STATE 5 l 12070 12069',
22974         'STATE 4 g 11920 12071',
22975         'STATE 5 e 12073 12072',
22976         'STATE 5 h 11943 11920',
22977         'STATE 6 # 11920 12074',
22978         'STATE 3 g 11950 12075',
22979         'STATE 6 r 11965 12076',
22980         'STATE 3 o 11920 12077',
22981         'STATE 3 m 11949 12078',
22982         'STATE 4 i 12080 12079',
22983         'STATE 3 g 12082 12081',
22984         'STATE 3 r 12084 12083',
22985         'STATE 6 # 11942 12085',
22986         'STATE 4 n 12086 12017',
22987         'STATE 6 r 12088 12087',
22988         'STATE 3 t 12000 12089',
22989         'STATE 3 b 12091 12090',
22990         'STATE 4 s 12093 12092',
22991         'STATE 6 o 11942 12017',
22992         'STATE 6 c 12017 12094',
22993         'STATE 4 n 12017 12095',
22994         'STATE 3 l 12097 12096',
22995         'STATE 4 l 12000 11942',
22996         'STATE 6 t 11961 12098',
22997         'STATE 6 n 12000 11942',
22998         'STATE 6 x 11943 12099',
22999         'STATE 3 f 12017 12100',
23000         'STATE 3 e 12102 12101',
23001         'STATE 3 n 12104 12103',
23002         'STATE 5 n 11957 12105',
23003         'STATE 6 y 11920 11957',
23004         'STATE 4 x 11942 12106',
23005         'STATE 4 b 11943 12107',
23006         'STATE 6 a 11943 12108',
23007         'STATE 5 a 11961 11920',
23008         'STATE 6 d 11920 12109',
23009         'STATE 6 i 11942 11920',
23010         'STATE 3 o 11920 12110',
23011         'STATE 6 s 11920 12111',
23012         'STATE 3 m 11920 12112',
23013         'STATE 3 d 11965 12113',
23014         'STATE 3 # 12115 12114',
23015         'STATE 3 g 12117 12116',
23016         'STATE 5 t 12119 12118',
23017         'STATE 5 r 11920 12120',
23018         'STATE 6 # 12122 12121',
23019         'STATE 5 n 11965 11942',
23020         'STATE 6 t 12124 12123',
23021         'STATE 6 b 12017 12125',
23022         'STATE 3 t 11942 12126',
23023         'STATE 3 c 12128 12127',
23024         'STATE 3 s 12000 12129',
23025         'STATE 3 l 11942 12130',
23026         'STATE 4 s 12132 12131',
23027         'STATE 6 e 12128 12133',
23028         'STATE 6 n 12017 11942',
23029         'STATE 6 z 12128 12134',
23030         'STATE 4 t 12017 11961',
23031         'STATE 3 t 12136 12135',
23032         'STATE 6 n 12137 11942',
23033         'STATE 6 l 11942 12138',
23034         'STATE 6 m 11943 12000',
23035         'STATE 3 b 12017 12139',
23036         'STATE 4 i 11942 12140',
23037         'STATE 4 x 11920 12141',
23038         'STATE 3 l 11942 12142',
23039         'PHONE y-uw',
23040         'STATE 4 i 11957 11920',
23041         'STATE 4 e 12144 12143',
23042         'STATE 4 e 11961 11920',
23043         'STATE 6 e 11920 12145',
23044         'STATE 6 r 11920 11942',
23045         'STATE 3 b 12147 12146',
23046         'STATE 6 d 11965 11920',
23047         'STATE 3 # 11949 12148',
23048         'STATE 3 k 11920 12149',
23049         'STATE 5 o 12151 12150',
23050         'STATE 4 n 12153 12152',
23051         'STATE 3 b 11920 12154',
23052         'STATE 6 h 11957 12155',
23053         'STATE 5 l 12157 12156',
23054         'STATE 3 t 11961 12158',
23055         'STATE 6 a 11957 12159',
23056         'STATE 3 l 12161 12160',
23057         'STATE 3 s 11942 12162',
23058         'STATE 3 h 12164 12163',
23059         'STATE 4 t 12166 12165',
23060         'STATE 6 n 11943 12167',
23061         'STATE 3 c 12128 12168',
23062         'STATE 3 g 12128 12169',
23063         'PHONE y-ax',
23064         'STATE 3 d 12000 12128',
23065         'STATE 3 p 12171 12170',
23066         'STATE 6 o 12017 12172',
23067         'PHONE ih1',
23068         'STATE 6 v 12128 12173',
23069         'STATE 6 s 12128 12017',
23070         'STATE 3 d 12175 12174',
23071         'STATE 4 d 11942 12176',
23072         'STATE 4 m 11943 11942',
23073         'STATE 6 n 12177 11942',
23074         'STATE 3 # 12017 12178',
23075         'STATE 4 y 11920 12179',
23076         'STATE 4 p 11943 11961',
23077         'STATE 3 c 12104 12017',
23078         'STATE 5 t 11920 12180',
23079         'STATE 6 t 11961 11942',
23080         'STATE 6 i 11920 12181',
23081         'STATE 3 c 12183 12182',
23082         'STATE 6 a 11949 11927',
23083         'STATE 6 s 11965 12184',
23084         'STATE 3 a 11920 12185',
23085         'STATE 4 # 12187 12186',
23086         'STATE 6 # 12189 12188',
23087         'STATE 4 p 12191 12190',
23088         'STATE 5 d 12193 12192',
23089         'STATE 3 c 12195 12194',
23090         'STATE 5 t 11920 12196',
23091         'STATE 3 t 12198 12197',
23092         'STATE 3 n 12104 12199',
23093         'STATE 3 d 12201 12200',
23094         'STATE 5 n 11957 12202',
23095         'STATE 3 b 12204 12203',
23096         'STATE 5 n 11961 12205',
23097         'STATE 3 n 12207 12206',
23098         'STATE 3 s 12209 12208',
23099         'STATE 4 m 12017 11942',
23100         'STATE 3 c 12128 12210',
23101         'STATE 3 p 12128 12104',
23102         'STATE 6 l 12000 11943',
23103         'STATE 3 m 12128 12211',
23104         'STATE 3 p 12128 12000',
23105         'STATE 3 f 12213 12212',
23106         'STATE 6 s 11943 12017',
23107         'STATE 4 t 12104 12093',
23108         'STATE 6 n 12128 12017',
23109         'STATE 3 e 12215 12214',
23110         'STATE 4 l 11961 11942',
23111         'STATE 4 t 11942 12216',
23112         'STATE 4 d 11942 12217',
23113         'STATE 3 c 12017 12218',
23114         'STATE 4 z 11961 12219',
23115         'STATE 4 # 11942 12220',
23116         'STATE 6 # 11920 11943',
23117         'STATE 3 p 11949 12221',
23118         'STATE 6 # 11950 11949',
23119         'STATE 3 a 11920 12222',
23120         'STATE 3 o 11920 12223',
23121         'STATE 4 o 12225 12224',
23122         'STATE 3 c 12104 12226',
23123         'STATE 6 u 12228 12227',
23124         'STATE 3 c 12017 11942',
23125         'STATE 5 u 12017 12229',
23126         'STATE 5 h 12000 12230',
23127         'STATE 5 o 11943 12231',
23128         'STATE 6 o 12000 12232',
23129         'STATE 5 n 12234 12233',
23130         'STATE 5 s 11957 11920',
23131         'STATE 6 g 11920 12235',
23132         'STATE 3 n 11942 12236',
23133         'STATE 6 y 11961 12237',
23134         'STATE 3 d 11961 12238',
23135         'STATE 3 l 12104 12239',
23136         'PHONE ax-w',
23137         'STATE 6 # 11920 11957',
23138         'STATE 3 m 12241 12240',
23139         'STATE 5 n 11957 12017',
23140         'STATE 6 e 11965 11942',
23141         'STATE 3 l 12243 12242',
23142         'STATE 5 l 11989 12104',
23143         'STATE 3 g 12245 12244',
23144         'STATE 6 r 11965 12246',
23145         'STATE 4 m 11942 12247',
23146         'STATE 6 # 11942 12248',
23147         'STATE 3 h 12250 12249',
23148         'STATE 4 j 11942 12017',
23149         'STATE 4 y 11920 12251',
23150         'STATE 4 g 12104 12252',
23151         'STATE 4 n 12253 11942',
23152         'STATE 4 b 11942 12000',
23153         'STATE 6 n 11942 12254',
23154         'STATE 4 l 12000 12255',
23155         'STATE 4 v 12257 12256',
23156         'STATE 3 # 11951 12258',
23157         'STATE 6 l 11920 12259',
23158         'STATE 3 e 11920 12260',
23159         'STATE 3 e 12262 12261',
23160         'STATE 5 u 12264 12263',
23161         'STATE 3 e 11942 12265',
23162         'STATE 3 c 12267 12266',
23163         'STATE 4 l 12128 11943',
23164         'STATE 4 h 12269 12268',
23165         'STATE 5 d 12000 12270',
23166         'STATE 6 o 12272 12271',
23167         'STATE 6 e 11943 12273',
23168         'STATE 3 m 11942 12274',
23169         'STATE 3 r 11942 12275',
23170         'STATE 6 d 11920 12276',
23171         'STATE 5 n 12278 12277',
23172         'STATE 6 i 11961 11942',
23173         'STATE 3 t 12280 12279',
23174         'STATE 3 n 12104 12128',
23175         'STATE 3 f 12282 12281',
23176         'STATE 5 l 12104 12017',
23177         'STATE 3 d 11942 12283',
23178         'STATE 5 d 12104 11942',
23179         'STATE 3 n 12285 12284',
23180         'STATE 6 n 11920 12000',
23181         'STATE 6 n 11961 11942',
23182         'STATE 3 d 12000 12286',
23183         'STATE 3 d 12000 11942',
23184         'STATE 3 k 12288 12287',
23185         'STATE 4 m 12104 12289',
23186         'STATE 6 n 12291 12290',
23187         'STATE 6 r 12293 12292',
23188         'STATE 6 # 11942 12000',
23189         'STATE 3 r 11942 12294',
23190         'STATE 4 h 11961 12295',
23191         'STATE 5 a 12297 12296',
23192         'STATE 5 i 11961 11942',
23193         'STATE 6 k 11965 12298',
23194         'STATE 6 n 12300 12299',
23195         'STATE 6 n 12302 12301',
23196         'STATE 5 u 12304 12303',
23197         'STATE 4 p 11943 12305',
23198         'STATE 5 r 11920 12306',
23199         'STATE 3 n 12104 12307',
23200         'STATE 3 g 11961 12308',
23201         'STATE 3 b 12310 12309',
23202         'STATE 4 t 12128 11942',
23203         'STATE 4 m 11943 12311',
23204         'STATE 6 i 11965 11942',
23205         'STATE 5 p 11943 12312',
23206         'STATE 5 u 12000 12313',
23207         'STATE 5 c 11943 12000',
23208         'STATE 6 i 11943 12000',
23209         'STATE 3 s 11942 12314',
23210         'STATE 6 g 11942 12128',
23211         'STATE 6 e 11920 12315',
23212         'STATE 3 s 11957 12316',
23213         'STATE 3 h 11957 12317',
23214         'STATE 3 s 12201 12318',
23215         'STATE 6 i 12201 11961',
23216         'STATE 5 r 12320 12319',
23217         'STATE 5 l 12017 11957',
23218         'STATE 5 r 11920 12321',
23219         'STATE 3 c 12173 12322',
23220         'STATE 4 f 12128 11942',
23221         'STATE 4 g 12000 12323',
23222         'STATE 3 g 11961 12324',
23223         'STATE 6 c 12017 12325',
23224         'STATE 6 a 11942 12326',
23225         'STATE 3 n 12328 12327',
23226         'STATE 4 m 12128 12329',
23227         'STATE 6 # 11943 12330',
23228         'STATE 4 v 11942 12331',
23229         'STATE 6 # 12017 11942',
23230         'STATE 4 k 12000 12332',
23231         'STATE 4 a 11961 12333',
23232         'STATE 4 g 11942 12334',
23233         'STATE 3 l 11965 12335',
23234         'STATE 3 d 11965 11920',
23235         'STATE 3 d 11920 12336',
23236         'STATE 6 z 11920 12337',
23237         'STATE 3 t 11920 12338',
23238         'STATE 3 s 12340 12339',
23239         'STATE 3 c 12342 12341',
23240         'STATE 5 r 11942 12343',
23241         'STATE 6 # 11920 12344',
23242         'STATE 3 c 12104 12345',
23243         'STATE 3 n 11961 12346',
23244         'STATE 3 m 12104 12347',
23245         'STATE 4 t 12128 12017',
23246         'STATE 5 t 11943 12348',
23247         'STATE 6 i 11943 12349',
23248         'STATE 5 w 12000 12350',
23249         'STATE 6 # 12352 12351',
23250         'STATE 5 l 11920 12353',
23251         'STATE 5 d 11957 12354',
23252         'STATE 3 j 11957 11961',
23253         'STATE 3 x 12201 11961',
23254         'STATE 6 a 11957 12355',
23255         'STATE 3 e 11920 12356',
23256         'STATE 3 c 12017 12357',
23257         'STATE 4 t 12359 12358',
23258         'STATE 3 t 12000 12360',
23259         'STATE 6 e 12362 12361',
23260         'STATE 4 l 12104 12062',
23261         'STATE 4 l 12017 11942',
23262         'STATE 3 j 11942 12363',
23263         'STATE 4 t 12000 11942',
23264         'STATE 4 l 12128 12364',
23265         'STATE 6 n 11920 11942',
23266         'STATE 4 t 11942 12365',
23267         'STATE 3 n 11943 12366',
23268         'STATE 6 u 11920 12367',
23269         'STATE 6 # 11942 12175',
23270         'STATE 6 t 11920 12368',
23271         'STATE 3 s 11965 12017',
23272         'STATE 3 j 11965 12369',
23273         'STATE 3 s 11965 11920',
23274         'STATE 4 l 12371 12370',
23275         'STATE 5 r 12373 12372',
23276         'STATE 4 t 12375 12374',
23277         'STATE 4 m 12017 12128',
23278         'STATE 6 a 12104 12376',
23279         'STATE 5 y 11920 12377',
23280         'STATE 3 t 12000 11961',
23281         'STATE 3 l 11961 12378',
23282         'STATE 4 b 12380 12379',
23283         'STATE 5 o 12104 12381',
23284         'STATE 6 a 11943 12382',
23285         'STATE 6 a 12000 12383',
23286         'STATE 5 d 11961 12384',
23287         'STATE 3 r 11942 11961',
23288         'STATE 6 t 11957 12385',
23289         'STATE 5 r 11957 11942',
23290         'STATE 3 k 11965 12386',
23291         'STATE 3 h 11920 11965',
23292         'STATE 5 l 11942 12017',
23293         'STATE 6 m 11942 12387',
23294         'STATE 3 r 11942 12388',
23295         'STATE 4 n 11961 11942',
23296         'STATE 3 e 12390 12389',
23297         'STATE 4 l 11942 12391',
23298         'STATE 3 h 12393 12392',
23299         'STATE 3 j 11942 12017',
23300         'STATE 4 b 11920 11942',
23301         'STATE 4 g 11943 12394',
23302         'STATE 6 r 11920 12395',
23303         'STATE 3 j 11920 12396',
23304         'STATE 6 s 11920 12397',
23305         'STATE 5 h 12399 12398',
23306         'STATE 3 f 12401 12400',
23307         'STATE 4 b 12403 12402',
23308         'STATE 6 e 11961 12404',
23309         'STATE 6 # 11942 12405',
23310         'STATE 3 m 12017 12406',
23311         'STATE 6 c 11920 12407',
23312         'STATE 3 b 11957 12408',
23313         'STATE 3 r 11961 12409',
23314         'STATE 4 d 11942 12410',
23315         'STATE 3 s 12000 12411',
23316         'STATE 4 z 11961 11943',
23317         'STATE 5 t 11943 12412',
23318         'STATE 5 f 12000 12413',
23319         'STATE 3 h 11920 12414',
23320         'STATE 6 i 11920 12415',
23321         'STATE 3 h 12417 12416',
23322         'STATE 3 e 12419 12418',
23323         'STATE 3 l 11961 12420',
23324         'STATE 3 n 11942 12421',
23325         'STATE 6 c 12017 11942',
23326         'STATE 3 r 11942 11943',
23327         'STATE 4 t 12423 12422',
23328         'STATE 4 l 11942 12424',
23329         'STATE 4 p 12426 12425',
23330         'STATE 6 t 11961 12427',
23331         'STATE 3 e 11920 12428',
23332         'STATE 3 t 11965 12429',
23333         'STATE 6 # 12431 12430',
23334         'STATE 4 s 12433 12432',
23335         'STATE 3 b 12435 12434',
23336         'STATE 6 y 12000 12436',
23337         'STATE 5 p 12438 12437',
23338         'STATE 6 c 12000 12439',
23339         'STATE 6 a 11942 11943',
23340         'STATE 4 k 11961 12440',
23341         'STATE 6 r 12017 11942',
23342         'STATE 6 i 11942 12441',
23343         'STATE 5 m 11957 12442',
23344         'STATE 3 k 11942 12443',
23345         'STATE 3 h 12164 12444',
23346         'STATE 3 d 12000 11943',
23347         'STATE 6 r 12000 12445',
23348         'STATE 5 l 12000 12446',
23349         'STATE 3 d 11961 11942',
23350         'STATE 6 n 11920 12447',
23351         'STATE 3 # 11965 12448',
23352         'STATE 5 t 11942 12449',
23353         'STATE 6 s 12451 12450',
23354         'STATE 6 l 12017 11942',
23355         'STATE 3 b 12128 12452',
23356         'STATE 6 o 11942 12453',
23357         'STATE 3 m 12455 12454',
23358         'STATE 3 b 12104 12017',
23359         'STATE 4 t 11942 12456',
23360         'STATE 3 m 12000 12457',
23361         'STATE 3 r 12000 12458',
23362         'STATE 5 i 12460 12459',
23363         'STATE 3 n 11950 12461',
23364         'STATE 6 a 11965 12462',
23365         'STATE 4 y 11920 12463',
23366         'STATE 5 y 12465 12464',
23367         'STATE 4 t 12467 12466',
23368         'STATE 3 b 11965 12468',
23369         'STATE 3 p 12470 12469',
23370         'STATE 5 l 11965 12471',
23371         'STATE 5 n 12000 12472',
23372         'STATE 5 c 12474 12473',
23373         'STATE 4 m 11943 12475',
23374         'STATE 6 l 11943 12476',
23375         'STATE 6 l 11942 12477',
23376         'STATE 6 # 12478 11920',
23377         'STATE 6 o 11957 12479',
23378         'STATE 3 m 11942 11961',
23379         'STATE 3 e 12481 12480',
23380         'STATE 6 e 12000 11943',
23381         'STATE 5 h 12000 12482',
23382         'STATE 6 o 11920 12483',
23383         'STATE 6 d 11942 12484',
23384         'STATE 5 l 11942 11965',
23385         'STATE 3 k 11961 12485',
23386         'STATE 3 l 11942 12486',
23387         'STATE 3 p 12128 12017',
23388         'STATE 6 # 11942 12487',
23389         'STATE 4 p 11942 12488',
23390         'STATE 4 n 12489 12017',
23391         'STATE 6 # 12017 12164',
23392         'STATE 3 b 12000 12490',
23393         'STATE 3 d 11943 12491',
23394         'STATE 5 f 11920 12492',
23395         'STATE 6 n 12494 12493',
23396         'STATE 6 # 11965 12495',
23397         'STATE 3 l 11965 11920',
23398         'STATE 5 c 12497 12496',
23399         'STATE 5 d 12499 12498',
23400         'STATE 4 d 11942 12500',
23401         'STATE 4 g 12502 12501',
23402         'STATE 6 # 12504 12503',
23403         'STATE 3 p 11965 12505',
23404         'STATE 5 l 12507 12506',
23405         'STATE 5 l 11965 12508',
23406         'STATE 6 a 12000 11943',
23407         'STATE 5 f 11989 12509',
23408         'STATE 4 g 12000 12510',
23409         'STATE 6 e 12000 12511',
23410         'STATE 6 h 11943 12512',
23411         'STATE 6 a 11943 12513',
23412         'STATE 6 s 11942 12514',
23413         'STATE 5 z 11920 11942',
23414         'STATE 5 n 11961 11942',
23415         'STATE 6 w 12000 12515',
23416         'STATE 6 g 12017 11920',
23417         'STATE 5 v 12000 12516',
23418         'STATE 5 n 11920 12517',
23419         'STATE 3 c 11957 12518',
23420         'STATE 3 f 11961 12519',
23421         'STATE 4 d 11943 11942',
23422         'STATE 4 c 11942 12520',
23423         'STATE 3 z 11942 12521',
23424         'STATE 6 # 12017 12104',
23425         'STATE 3 r 12523 12522',
23426         'STATE 3 s 12000 12524',
23427         'STATE 5 # 12526 12525',
23428         'STATE 4 l 11942 11920',
23429         'STATE 4 l 11961 11920',
23430         'STATE 3 d 11965 11949',
23431         'STATE 5 l 12528 12527',
23432         'STATE 4 c 12530 12529',
23433         'STATE 5 r 11920 12531',
23434         'STATE 4 n 12532 11943',
23435         'STATE 3 l 11942 12533',
23436         'STATE 6 i 11942 12534',
23437         'STATE 6 e 12017 11943',
23438         'STATE 3 r 12535 11943',
23439         'STATE 3 m 11961 12536',
23440         'STATE 3 c 11965 11943',
23441         'STATE 5 y 11942 12537',
23442         'STATE 6 o 11942 11943',
23443         'STATE 6 o 11965 12538',
23444         'STATE 6 i 11965 12539',
23445         'STATE 6 a 12541 12540',
23446         'STATE 4 c 12000 11943',
23447         'STATE 4 s 12000 12542',
23448         'STATE 5 m 12000 12543',
23449         'STATE 6 e 12545 12544',
23450         'STATE 3 d 11961 12546',
23451         'STATE 5 t 12000 12547',
23452         'STATE 6 a 11920 11957',
23453         'STATE 3 t 11961 12548',
23454         'STATE 3 b 11961 12549',
23455         'STATE 6 g 11943 12550',
23456         'STATE 6 l 11942 12551',
23457         'STATE 3 p 11943 12552',
23458         'STATE 4 n 11943 12553',
23459         'STATE 3 h 12000 11943',
23460         'STATE 6 a 11942 12554',
23461         'STATE 4 d 11920 11942',
23462         'STATE 5 r 12556 12555',
23463         'STATE 4 h 11942 12557',
23464         'STATE 3 b 12558 11943',
23465         'STATE 6 i 12560 12559',
23466         'STATE 3 i 12000 12561',
23467         'STATE 3 f 11943 12562',
23468         'STATE 4 b 11942 12128',
23469         'STATE 3 b 12564 12563',
23470         'STATE 6 e 11943 11942',
23471         'STATE 3 l 11942 12565',
23472         'STATE 3 h 11943 12566',
23473         'STATE 6 i 11943 12567',
23474         'STATE 6 o 11965 12568',
23475         'STATE 5 h 11943 12569',
23476         'STATE 4 s 12000 12570',
23477         'STATE 6 o 12000 12571',
23478         'STATE 6 o 12000 12572',
23479         'STATE 4 s 12017 12573',
23480         'STATE 4 g 12017 12000',
23481         'STATE 6 t 11961 12574',
23482         'STATE 5 b 12575 12000',
23483         'STATE 3 d 11942 12576',
23484         'STATE 3 m 11961 12577',
23485         'STATE 4 m 12579 12578',
23486         'STATE 6 r 12017 12580',
23487         'STATE 3 h 11943 12581',
23488         'STATE 4 t 12000 11943',
23489         'STATE 5 e 12493 12582',
23490         'STATE 4 z 12584 12583',
23491         'STATE 4 h 11965 12585',
23492         'STATE 4 c 11942 12586',
23493         'STATE 4 n 11943 12587',
23494         'STATE 6 o 11942 11961',
23495         'STATE 3 b 11961 11942',
23496         'STATE 3 p 12589 12588',
23497         'STATE 3 l 12000 12590',
23498         'STATE 3 d 11943 12591',
23499         'STATE 6 a 12104 11943',
23500         'STATE 3 r 11961 11942',
23501         'STATE 5 f 12593 12592',
23502         'STATE 5 t 12000 11943',
23503         'STATE 5 l 11965 12594',
23504         'STATE 4 f 12596 12595',
23505         'STATE 4 m 12000 11943',
23506         'STATE 6 r 12000 12167',
23507         'STATE 5 v 12000 12597',
23508         'STATE 6 a 11942 12598',
23509         'STATE 3 r 11942 12599',
23510         'STATE 6 e 11943 12000',
23511         'STATE 5 l 11961 12600',
23512         'STATE 4 k 11961 12601',
23513         'STATE 3 s 11961 12602',
23514         'STATE 6 n 11942 11961',
23515         'STATE 4 l 12604 12603',
23516         'STATE 3 c 11943 12605',
23517         'STATE 4 l 11920 12606',
23518         'STATE 4 s 12608 12607',
23519         'STATE 6 l 11943 12609',
23520         'STATE 3 n 11961 12610',
23521         'STATE 4 p 12612 12611',
23522         'STATE 4 s 11943 11965',
23523         'STATE 5 l 11943 12613',
23524         'STATE 5 s 11965 11943',
23525         'STATE 3 m 12000 11943',
23526         'STATE 3 r 11943 12614',
23527         'STATE 6 a 12567 12615',
23528         'STATE 3 g 11943 12000',
23529         'STATE 6 # 11965 11943',
23530         'STATE 5 d 11943 12616',
23531         'STATE 6 i 12000 11943',
23532         'STATE 5 l 12000 12617',
23533         'STATE 4 b 12000 12618',
23534         'STATE 4 s 12000 12619',
23535         'STATE 3 s 11957 12620',
23536         'STATE 4 n 12622 12621',
23537         'STATE 6 l 12624 12623',
23538         'STATE 6 # 12017 12625',
23539         'STATE 3 c 12017 12626',
23540         'STATE 3 l 12628 12627',
23541         'STATE 6 e 11942 11920',
23542         'STATE 4 h 12630 12629',
23543         'STATE 5 s 12632 12631',
23544         'STATE 6 e 12634 12633',
23545         'STATE 3 l 11942 12635',
23546         'STATE 4 g 12637 12636',
23547         'STATE 3 d 11942 12391',
23548         'STATE 5 z 12524 12638',
23549         'STATE 3 h 11943 12639',
23550         'STATE 6 # 11943 12640',
23551         'STATE 5 s 12642 12641',
23552         'STATE 6 r 12000 12643',
23553         'STATE 3 d 12000 12644',
23554         'STATE 6 n 12646 12645',
23555         'STATE 3 p 11957 11942',
23556         'STATE 4 s 11961 12647',
23557         'STATE 3 d 11943 11942',
23558         'STATE 4 l 12649 12648',
23559         'STATE 4 b 11942 12017',
23560         'STATE 4 g 12017 12650',
23561         'STATE 3 b 12017 12104',
23562         'STATE 3 g 12652 12651',
23563         'STATE 4 b 11943 12000',
23564         'STATE 6 o 11943 12653',
23565         'STATE 6 e 11942 11943',
23566         'STATE 5 t 12654 11943',
23567         'STATE 3 r 12507 11943',
23568         'STATE 5 z 12655 11943',
23569         'STATE 3 b 11943 11961',
23570         'STATE 6 i 11943 12656',
23571         'STATE 6 e 12658 12657',
23572         'STATE 3 g 11961 11943',
23573         'STATE 5 m 11943 12659',
23574         'STATE 6 # 12000 11943',
23575         'STATE 6 y 12000 12660',
23576         'STATE 4 l 12661 11943',
23577         'STATE 4 s 11943 12652',
23578         'STATE 5 t 11943 12662',
23579         'STATE 6 r 12000 11943',
23580         'STATE 4 l 12000 12663',
23581         'STATE 3 l 11961 11942',
23582         'STATE 4 v 11961 12664',
23583         'STATE 3 j 11942 12665',
23584         'STATE 3 j 11942 12666',
23585         'STATE 6 s 12017 12667',
23586         'STATE 3 t 11943 12000',
23587         'STATE 4 n 11943 12000',
23588         'STATE 3 c 12669 12668',
23589         'STATE 6 r 12671 12670',
23590         'STATE 6 i 11942 12507',
23591         'STATE 3 d 12628 11943',
23592         'STATE 6 a 12672 11943',
23593         'STATE 4 b 11942 11943',
23594         'STATE 4 m 12674 12673',
23595         'STATE 5 c 11943 12675',
23596         'STATE 6 o 12000 11943',
23597         'STATE 5 j 12000 12676',
23598         'STATE 6 s 11942 12677',
23599         'STATE 6 y 11961 12678',
23600         'STATE 4 s 11942 12679',
23601         'STATE 3 d 11942 12680',
23602         'STATE 4 n 12017 12681',
23603         'STATE 3 p 11943 12682',
23604         'STATE 4 m 12683 11943',
23605         'STATE 6 a 12684 11943',
23606         'STATE 3 l 12000 11943',
23607         'STATE 4 n 11943 11942',
23608         'STATE 4 t 12686 12685',
23609         'STATE 5 p 11943 12687',
23610         'STATE 5 t 11943 12688',
23611         'STATE 5 s 12596 11943',
23612         'STATE 3 l 11942 12360',
23613         'STATE 3 r 12690 12689',
23614         'STATE 3 d 11942 12691',
23615         'STATE 3 t 11961 11942',
23616         'STATE 6 d 12017 11942',
23617         'STATE 5 z 12693 12692',
23618         'STATE 5 s 12000 12694',
23619         'STATE 3 g 11943 12695',
23620         'STATE 3 j 11943 12696',
23621         'STATE 5 s 11943 12697',
23622         'STATE 5 b 11943 12000',
23623         'STATE 3 c 11943 12698',
23624         'STATE 3 t 11942 12699',
23625         'STATE 6 l 11961 11942',
23626         'STATE 4 d 11942 12700',
23627         'STATE 3 i 12000 12701',
23628         'STATE 6 i 12702 11943',
23629         'STATE 5 v 12000 11943',
23630         'STATE 3 b 11943 12703',
23631         'STATE 5 n 11943 12704',
23632         'STATE 3 c 12000 11943',
23633         'STATE 3 v 11943 12705',
23634         'STATE 6 r 12707 12706',
23635         'STATE 6 s 11942 12708',
23636         'STATE 4 k 12000 12709',
23637         'STATE 4 d 11943 12710',
23638         'STATE 3 m 11943 12000',
23639         'STATE 3 b 11943 12711',
23640         'STATE 3 g 11943 12712',
23641         'STATE 4 d 11942 12713',
23642         'STATE 3 l 11942 11961',
23643         'STATE 6 c 11942 12714',
23644         'STATE 3 l 12716 12715',
23645         'STATE 3 n 11961 11943',
23646         'STATE 3 g 11943 12717',
23647         'STATE 5 g 11943 12718',
23648         'STATE 6 l 11942 12719',
23649         'STATE 3 t 11942 12720',
23650         'STATE 4 m 11943 12721',
23651         'STATE 5 n 12000 12722',
23652         'STATE 4 g 11943 12723',
23653         'STATE 5 s 11943 12724',
23654         'STATE 4 b 11942 12725',
23655         'STATE 4 b 11942 12726',
23656         'STATE 3 r 11943 12727',
23657         'STATE 6 a 12729 12728',
23658         'STATE 3 d 11943 12730',
23659         'STATE 5 k 11943 12731',
23660         'STATE 3 d 12000 12246',
23661         'STATE 6 n 11942 12732',
23662         'STATE 6 a 12734 12733',
23663         'STATE 5 w 11943 12735',
23664         'STATE 4 n 12000 11943',
23665         'STATE 5 g 12737 12736',
23666         'STATE 6 o 11943 12703',
23667         'STATE 6 a 11942 11961',
23668         'STATE 6 s 12590 11943',
23669         'STATE 5 t 11943 12738',
23670         'STATE 5 t 12739 11943',
23671         'STATE 3 f 11943 12740',
23672         'STATE 3 t 12000 11943',
23673         'STATE 3 n 12000 11943',
23674         'STATE 4 t 11943 12445',
23675         'STATE 4 p 12741 11943',
23676         'STATE 5 p 11943 12742',
23677         'STATE 3 r 12000 11943',
23678         'INDEX 12743 v',
23679         'STATE 4 v 12745 12744',
23680         'PHONE v',
23681         'PHONE epsilon',
23682         'INDEX 12746 w',
23683         'STATE 3 o 12748 12747',
23684         'STATE 3 e 12750 12749',
23685         'STATE 5 k 12752 12751',
23686         'STATE 3 a 12754 12753',
23687         'STATE 5 k 12756 12755',
23688         'STATE 6 z 12758 12757',
23689         'STATE 6 i 12756 12759',
23690         'STATE 4 r 12759 12760',
23691         'STATE 4 a 12762 12761',
23692         'STATE 6 z 12764 12763',
23693         'PHONE f',
23694         'STATE 4 a 12766 12765',
23695         'STATE 5 c 12764 12767',
23696         'PHONE epsilon',
23697         'STATE 5 o 12769 12768',
23698         'STATE 5 k 12756 12770',
23699         'STATE 5 l 12759 12767',
23700         'STATE 4 o 12762 12771',
23701         'PHONE v',
23702         'STATE 6 l 12773 12772',
23703         'STATE 5 y 12767 12774',
23704         'PHONE w',
23705         'STATE 3 u 12776 12775',
23706         'STATE 4 h 12777 12767',
23707         'STATE 4 o 12767 12778',
23708         'STATE 4 a 12780 12779',
23709         'STATE 4 o 12767 12759',
23710         'STATE 5 l 12767 12759',
23711         'STATE 1 c 12767 12759',
23712         'STATE 5 r 12782 12781',
23713         'STATE 1 # 12767 12783',
23714         'STATE 6 l 12759 12784',
23715         'STATE 4 h 12767 12785',
23716         'STATE 4 i 12787 12786',
23717         'STATE 5 y 12767 12788',
23718         'STATE 4 e 12767 12789',
23719         'STATE 3 s 12790 12767',
23720         'STATE 4 e 12767 12759',
23721         'STATE 6 o 12767 12759',
23722         'STATE 4 i 12792 12791',
23723         'STATE 4 e 12794 12793',
23724         'STATE 6 d 12767 12795',
23725         'STATE 1 # 12759 12796',
23726         'STATE 5 s 12798 12797',
23727         'STATE 6 t 12767 12799',
23728         'STATE 4 e 12801 12800',
23729         'STATE 6 g 12759 12802',
23730         'STATE 4 h 12802 12759',
23731         'STATE 6 l 12802 12803',
23732         'STATE 6 e 12767 12804',
23733         'STATE 6 e 12767 12805',
23734         'STATE 3 i 12806 12767',
23735         'STATE 6 i 12764 12767',
23736         'STATE 1 a 12759 12807',
23737         'STATE 5 o 12808 12759',
23738         'STATE 1 # 12809 12759',
23739         'STATE 1 # 12759 12767',
23740         'STATE 5 d 12759 12810',
23741         'STATE 1 e 12767 12811',
23742         'STATE 6 k 12767 12812',
23743         'STATE 1 s 12764 12767',
23744         'STATE 6 d 12759 12767',
23745         'STATE 1 # 12813 12759',
23746         'STATE 6 # 12759 12764',
23747         'STATE 5 l 12759 12814',
23748         'STATE 5 s 12759 12815',
23749         'STATE 6 # 12759 12816',
23750         'STATE 6 n 12759 12764',
23751         'STATE 5 r 12759 12817',
23752         'STATE 5 n 12759 12818',
23753         'STATE 1 s 12759 12819',
23754         'STATE 5 s 12759 12820',
23755         'STATE 6 t 12759 12821',
23756         'STATE 5 r 12767 12773',
23757         'STATE 5 y 12759 12822',
23758         'STATE 6 # 12759 12767',
23759         'STATE 6 t 12759 12823',
23760         'STATE 5 n 12759 12824',
23761         'STATE 5 # 12759 12767',
23762         'INDEX 12825 x',
23763         'STATE 3 u 12827 12826',
23764         'STATE 2 0 12829 12828',
23765         'STATE 4 # 12831 12830',
23766         'STATE 3 e 12832 12830',
23767         'PHONE z',
23768         'PHONE k-s',
23769         'STATE 2 l 12830 12833',
23770         'STATE 4 a 12835 12834',
23771         'PHONE epsilon',
23772         'STATE 4 u 12837 12836',
23773         'STATE 2 # 12839 12838',
23774         'STATE 4 h 12839 12840',
23775         'STATE 2 s 12841 12839',
23776         'STATE 2 l 12839 12830',
23777         'PHONE g-z',
23778         'STATE 4 e 12843 12842',
23779         'PHONE k-sh',
23780         'STATE 4 i 12845 12844',
23781         'STATE 2 # 12839 12830',
23782         'STATE 4 o 12839 12830',
23783         'STATE 2 l 12830 12846',
23784         'STATE 2 m 12830 12843',
23785         'INDEX 12847 y',
23786         'STATE 4 # 12849 12848',
23787         'STATE 2 0 12851 12850',
23788         'STATE 3 a 12853 12852',
23789         'STATE 3 a 12855 12854',
23790         'STATE 5 a 12857 12856',
23791         'STATE 3 o 12853 12858',
23792         'PHONE epsilon',
23793         'STATE 3 o 12860 12859',
23794         'STATE 4 a 12862 12861',
23795         'PHONE y',
23796         'STATE 4 e 12856 12863',
23797         'STATE 3 f 12865 12864',
23798         'STATE 3 e 12867 12866',
23799         'STATE 4 o 12869 12868',
23800         'STATE 4 u 12853 12870',
23801         'STATE 5 m 12856 12871',
23802         'PHONE iy',
23803         'STATE 3 e 12873 12872',
23804         'STATE 2 i 12875 12874',
23805         'STATE 1 0 12877 12876',
23806         'STATE 4 e 12879 12878',
23807         'STATE 5 m 12856 12853',
23808         'STATE 2 t 12856 12853',
23809         'STATE 4 o 12853 12880',
23810         'STATE 2 b 12853 12881',
23811         'STATE 3 u 12875 12882',
23812         'STATE 2 l 12863 12883',
23813         'STATE 2 f 12863 12875',
23814         'PHONE ay1',
23815         'STATE 4 a 12885 12884',
23816         'STATE 3 s 12887 12886',
23817         'STATE 1 # 12853 12888',
23818         'STATE 2 m 12890 12889',
23819         'STATE 5 v 12875 12853',
23820         'STATE 2 r 12853 12891',
23821         'STATE 2 f 12892 12863',
23822         'STATE 2 n 12863 12893',
23823         'STATE 1 # 12895 12894',
23824         'STATE 1 # 12897 12896',
23825         'STATE 5 e 12875 12898',
23826         'STATE 5 o 12900 12899',
23827         'STATE 2 n 12863 12901',
23828         'STATE 5 r 12903 12902',
23829         'STATE 1 # 12875 12904',
23830         'STATE 2 k 12875 12905',
23831         'STATE 3 l 12875 12863',
23832         'STATE 2 s 12863 12906',
23833         'STATE 5 e 12908 12907',
23834         'STATE 2 a 12910 12909',
23835         'STATE 3 i 12912 12911',
23836         'STATE 3 i 12856 12875',
23837         'STATE 4 o 12914 12913',
23838         'STATE 4 r 12916 12915',
23839         'STATE 4 n 12917 12916',
23840         'STATE 5 # 12863 12918',
23841         'STATE 5 d 12853 12875',
23842         'STATE 2 b 12875 12853',
23843         'PHONE ay',
23844         'STATE 5 n 12853 12919',
23845         'STATE 2 v 12920 12863',
23846         'STATE 4 n 12922 12921',
23847         'STATE 3 r 12863 12923',
23848         'STATE 2 o 12925 12924',
23849         'STATE 3 n 12863 12916',
23850         'STATE 5 n 12926 12856',
23851         'STATE 5 # 12853 12856',
23852         'STATE 4 u 12856 12927',
23853         'STATE 3 k 12856 12928',
23854         'STATE 5 e 12875 12916',
23855         'PHONE ih1',
23856         'PHONE ax',
23857         'STATE 2 l 12863 12853',
23858         'STATE 2 p 12853 12875',
23859         'STATE 1 a 12863 12929',
23860         'STATE 5 n 12931 12930',
23861         'STATE 5 a 12904 12932',
23862         'STATE 1 p 12934 12933',
23863         'STATE 2 e 12936 12935',
23864         'STATE 4 m 12916 12917',
23865         'STATE 2 e 12856 12937',
23866         'STATE 4 a 12939 12938',
23867         'STATE 5 n 12875 12940',
23868         'STATE 1 o 12863 12941',
23869         'STATE 4 k 12943 12942',
23870         'STATE 4 i 12944 12937',
23871         'STATE 2 a 12946 12945',
23872         'STATE 2 g 12916 12947',
23873         'STATE 4 m 12917 12863',
23874         'STATE 3 s 12875 12948',
23875         'STATE 3 g 12917 12916',
23876         'STATE 3 n 12856 12863',
23877         'STATE 4 e 12875 12949',
23878         'STATE 5 n 12904 12875',
23879         'STATE 3 m 12875 12856',
23880         'STATE 1 l 12863 12853',
23881         'STATE 4 l 12951 12950',
23882         'STATE 5 # 12952 12916',
23883         'STATE 3 f 12875 12953',
23884         'STATE 2 e 12917 12954',
23885         'STATE 3 r 12952 12916',
23886         'STATE 4 l 12956 12955',
23887         'STATE 5 e 12875 12957',
23888         'STATE 4 r 12959 12958',
23889         'STATE 4 e 12961 12960',
23890         'STATE 5 # 12917 12962',
23891         'PHONE ih',
23892         'STATE 3 l 12964 12963',
23893         'STATE 5 s 12916 12965',
23894         'STATE 3 d 12875 12966',
23895         'STATE 2 s 12875 12917',
23896         'STATE 4 e 12875 12967',
23897         'STATE 3 h 12969 12968',
23898         'STATE 5 o 12875 12970',
23899         'STATE 4 o 12972 12971',
23900         'STATE 3 u 12853 12973',
23901         'STATE 3 r 12975 12974',
23902         'STATE 2 r 12863 12976',
23903         'STATE 2 l 12863 12875',
23904         'STATE 1 r 12917 12977',
23905         'STATE 4 n 12875 12978',
23906         'STATE 3 k 12875 12979',
23907         'STATE 4 n 12981 12980',
23908         'STATE 5 n 12916 12982',
23909         'STATE 5 a 12875 12983',
23910         'STATE 4 u 12856 12984',
23911         'STATE 5 # 12856 12863',
23912         'STATE 5 # 12875 12985',
23913         'STATE 2 a 12917 12986',
23914         'STATE 1 m 12917 12863',
23915         'STATE 3 r 12875 12863',
23916         'STATE 5 i 12916 12987',
23917         'STATE 4 p 12875 12988',
23918         'STATE 4 o 12990 12989',
23919         'STATE 5 o 12992 12991',
23920         'STATE 3 d 12875 12916',
23921         'STATE 5 t 12916 12875',
23922         'STATE 3 l 12916 12993',
23923         'STATE 4 r 12995 12994',
23924         'STATE 3 m 12863 12996',
23925         'STATE 3 b 12916 12917',
23926         'STATE 3 w 12916 12997',
23927         'STATE 1 e 12999 12998',
23928         'STATE 3 u 12875 13000',
23929         'STATE 3 r 12875 12853',
23930         'STATE 3 c 13002 13001',
23931         'STATE 4 c 12904 12875',
23932         'STATE 3 m 12853 13003',
23933         'STATE 5 t 13005 13004',
23934         'STATE 2 o 12863 12853',
23935         'STATE 3 l 13006 12856',
23936         'STATE 3 s 12916 13007',
23937         'STATE 2 a 12875 13008',
23938         'STATE 2 n 12875 12863',
23939         'STATE 4 n 12916 13009',
23940         'STATE 5 a 13011 13010',
23941         'STATE 4 c 12875 13012',
23942         'STATE 5 i 12875 12916',
23943         'STATE 4 c 13014 13013',
23944         'STATE 3 l 12917 12916',
23945         'STATE 5 a 12856 12863',
23946         'STATE 2 r 12916 13015',
23947         'STATE 1 c 12863 13016',
23948         'STATE 5 n 12875 13017',
23949         'STATE 3 m 12916 13018',
23950         'STATE 3 l 12875 13019',
23951         'STATE 4 p 12875 12916',
23952         'STATE 4 i 12972 13020',
23953         'STATE 3 c 13022 13021',
23954         'STATE 1 e 12917 12916',
23955         'STATE 3 l 12863 13023',
23956         'STATE 4 l 12875 13024',
23957         'STATE 4 m 12916 13025',
23958         'STATE 3 b 12875 13026',
23959         'STATE 3 l 13028 13027',
23960         'STATE 3 z 12916 13029',
23961         'STATE 2 i 12952 12875',
23962         'STATE 2 o 12875 13030',
23963         'STATE 5 o 12875 13031',
23964         'STATE 3 r 12916 13032',
23965         'STATE 4 l 12916 13033',
23966         'STATE 3 z 13035 13034',
23967         'STATE 2 l 13037 13036',
23968         'STATE 2 o 13038 12916',
23969         'STATE 4 r 12875 13039',
23970         'STATE 2 f 12875 13040',
23971         'STATE 4 i 12875 13041',
23972         'STATE 4 b 12916 12875',
23973         'STATE 4 d 13043 13042',
23974         'STATE 4 b 12917 12875',
23975         'STATE 4 t 13045 13044',
23976         'STATE 4 s 12917 12863',
23977         'STATE 1 p 12952 12863',
23978         'STATE 3 h 12875 12904',
23979         'STATE 2 s 13047 13046',
23980         'STATE 5 u 12916 13048',
23981         'STATE 1 o 12916 13049',
23982         'STATE 3 h 12875 12863',
23983         'STATE 5 i 12917 13050',
23984         'STATE 2 a 12916 12917',
23985         'STATE 2 p 12916 13051',
23986         'STATE 3 z 12916 12875',
23987         'STATE 3 z 12916 13052',
23988         'STATE 1 r 12916 13053',
23989         'STATE 1 p 13054 12916',
23990         'STATE 4 p 12916 13055',
23991         'STATE 5 h 12875 13056',
23992         'STATE 4 p 12916 13057',
23993         'STATE 4 g 12916 13058',
23994         'STATE 5 h 12916 13059',
23995         'STATE 3 d 12916 13060',
23996         'STATE 3 s 12917 13061',
23997         'STATE 5 a 12917 12863',
23998         'STATE 3 h 12875 13062',
23999         'STATE 5 s 12916 13063',
24000         'STATE 3 n 13064 12863',
24001         'STATE 2 c 12916 13065',
24002         'STATE 3 b 12875 13066',
24003         'STATE 2 o 12917 12863',
24004         'STATE 3 r 12916 12875',
24005         'STATE 4 d 12916 13067',
24006         'STATE 5 i 12875 13068',
24007         'STATE 3 l 12875 13069',
24008         'STATE 3 w 12875 12916',
24009         'INDEX 13070 z',
24010         'STATE 3 t 13072 13071',
24011         'STATE 4 z 13074 13073',
24012         'STATE 4 # 13076 13075',
24013         'STATE 3 c 13074 13077',
24014         'PHONE epsilon',
24015         'STATE 4 e 13079 13078',
24016         'PHONE s',
24017         'STATE 3 s 13074 13080',
24018         'STATE 4 s 13074 13081',
24019         'PHONE z',
24020         'STATE 3 z 13083 13082',
24021         'STATE 4 i 13079 13084',
24022         'STATE 3 d 13086 13085',
24023         'STATE 4 l 13079 13087',
24024         'STATE 4 o 13079 13076',
24025         'STATE 4 s 13074 13088',
24026         'STATE 4 i 13074 13089',
24027         'STATE 4 # 13079 13090',
24028         'STATE 4 h 13092 13091',
24029         'STATE 4 e 13079 13074',
24030         'STATE 4 y 13079 13093',
24031         'STATE 3 r 13079 13094',
24032         'STATE 3 # 13095 13079',
24033         'STATE 4 o 13079 13096',
24034         'STATE 4 # 13079 13097',
24035         'PHONE zh',
24036         'STATE 4 e 13079 13098',
24037         'STATE 3 l 13099 13079',
24038         'PHONE t-s',
24039         'STATE 4 b 13098 13079',
24040     ];
24041 
24042     
24043     // ///////////////////////////// End Functions ////////////////////////////////////
24044 
24045     /*if (window.requestAnimationFrame) { // not used at moment
24046         
24047         window.requestAnimationFrame = (function () {
24048             return window.webkitRequestAnimationFrame ||
24049             window.mozRequestAnimationFrame ||
24050             window.oRequestAnimationFrame ||
24051             window.msRequestAnimationFrame ||
24052             function ( callback,element) {
24053                 window.setTimeout(callback, 1000 / RiText.frameRate); // Fallback timeout
24054             };
24055         })();
24056     }*/
24057     
24058     /////////////////////////////////////////////////////////////////////////////////////////
24059     
24060     var hasProcessing = (typeof Processing !== 'undefined');
24061     
24062     if (hasProcessing) {
24063 
24064         Processing.registerLibrary("RiTa", {
24065             
24066             //log("Processing.registerLibrary()");
24067             p : null, 
24068             
24069             init : function(obj) {
24070               //log("Processing.registerLibrary.init: ");
24071             },
24072         
24073             attach : function(p5) {
24074                 p = p5;
24075                 //log("Processing.registerLibrary.attach");
24076                 RiText.renderer = new RiText_P5(p5);
24077             },
24078             
24079             detach : function(p5) {
24080                 //log("Processing.registerLibrary.detach");
24081             }
24082             
24083             //exports : [] // export global function names?
24084         })
24085     }
24086     else {
24087         
24088         var cnv = document.getElementsByTagName("canvas")[0];
24089         try {
24090             var context2d = cnv.getContext("2d");
24091             RiText.renderer = new RiText_Canvas(context2d);
24092         }
24093         catch(e) {
24094             //console.warn("[RiTa] No object w' name='canvas' in DOM, renderer will be unavailable");
24095         }
24096     }
24097     
24098     console && console.log("[INFO] RiTa.version ["+RiTa.VERSION+RiTa.PHASE+"]");
24099     
24100     /////////////////////////////////////////////////////////////////////////////////////////
24101     // Core RiTa objects (in global namespace)
24102     /////////////////////////////////////////////////////////////////////////////////////////
24103 
24104     window['RiString'] = RiString;
24105     window['RiLexicon'] = RiLexicon;
24106     window['RiGrammar'] = RiGrammar;
24107     window['RiMarkov'] = RiMarkov;
24108     window['RiText'] = RiText;
24109     window['RiTa'] = RiTa;
24110     
24111     RiTa.p5Compatible(true); // TODO: pick a default? false...
24112      
24113     // For Testing
24114     window['RiLetterToSound'] = LetterToSound;
24115     
24116 })(window);
24117 
24118